diff --git a/sorts/wiggle_sort.py b/sorts/wiggle_sort.py index 13bc3ce9606f..cb3c3a47ab21 100644 --- a/sorts/wiggle_sort.py +++ b/sorts/wiggle_sort.py @@ -11,19 +11,23 @@ def wiggle_sort(nums: list) -> list: """ - Python implementation of wiggle. + Python implementation of wiggle sort. + Reorders an array such that nums[0] <= nums[1] >= nums[2] <= nums[3]... + Example: >>> wiggle_sort([0, 5, 3, 2, 2]) [0, 5, 2, 3, 2] >>> wiggle_sort([]) [] >>> wiggle_sort([-2, -5, -45]) - [-45, -2, -5] + [-5, -2, -45] >>> wiggle_sort([-2.1, -5.68, -45.11]) - [-45.11, -2.1, -5.68] + [-5.68, -2.1, -45.11] """ - for i, _ in enumerate(nums): - if (i % 2 == 1) == (nums[i - 1] > nums[i]): + for i in range(1, len(nums)): + if (i % 2 == 1 and nums[i - 1] > nums[i]) or ( + i % 2 == 0 and nums[i - 1] < nums[i] + ): nums[i - 1], nums[i] = nums[i], nums[i - 1] return nums