From f564c9d7c6fd630d8a465390dab45cc33fa56f8d Mon Sep 17 00:00:00 2001 From: Guillaume Rochedix <33205665+BriseBalloches@users.noreply.github.com> Date: Fri, 25 Sep 2020 09:18:00 +0200 Subject: [PATCH] Wiggle sort (#2419) * wiggle sort : type hint + doctest * fixed function name in docstring * correction --- sorts/wiggle_sort.py | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/sorts/wiggle_sort.py b/sorts/wiggle_sort.py index 5e5220ffb..13bc3ce96 100644 --- a/sorts/wiggle_sort.py +++ b/sorts/wiggle_sort.py @@ -9,18 +9,30 @@ one possible Wiggle Sorted answer is [3, 5, 1, 6, 2, 4]. """ -def wiggle_sort(nums): - """Perform Wiggle Sort.""" - for i in range(len(nums)): +def wiggle_sort(nums: list) -> list: + """ + Python implementation of wiggle. + Example: + >>> wiggle_sort([0, 5, 3, 2, 2]) + [0, 5, 2, 3, 2] + >>> wiggle_sort([]) + [] + >>> wiggle_sort([-2, -5, -45]) + [-45, -2, -5] + >>> wiggle_sort([-2.1, -5.68, -45.11]) + [-45.11, -2.1, -5.68] + """ + for i, _ in enumerate(nums): if (i % 2 == 1) == (nums[i - 1] > nums[i]): nums[i - 1], nums[i] = nums[i], nums[i - 1] + return nums + if __name__ == "__main__": - print("Enter the array elements:\n") + print("Enter the array elements:") array = list(map(int, input().split())) - print("The unsorted array is:\n") - print(array) - wiggle_sort(array) - print("Array after Wiggle sort:\n") + print("The unsorted array is:") print(array) + print("Array after Wiggle sort:") + print(wiggle_sort(array))