From bc13691519d1ec9ec04e1956daa380aa35fa1800 Mon Sep 17 00:00:00 2001 From: Mohd Mehraj <36121406+mohd-mehraj@users.noreply.github.com> Date: Tue, 6 Oct 2020 12:45:28 +0530 Subject: [PATCH] Cocktail Sort Python program for implementation of Cocktail Sort. --- Cocktail Sort | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 Cocktail Sort diff --git a/Cocktail Sort b/Cocktail Sort new file mode 100644 index 0000000..7e932a5 --- /dev/null +++ b/Cocktail Sort @@ -0,0 +1,55 @@ +# Python program for implementation of Cocktail Sort + +def cocktailSort(a): + n = len(a) + swapped = True + start = 0 + end = n-1 + while (swapped==True): + + # reset the swapped flag on entering the loop, + # because it might be true from a previous + # iteration. + swapped = False + + # loop from left to right same as the bubble + # sort + for i in range (start, end): + if (a[i] > a[i+1]) : + a[i], a[i+1]= a[i+1], a[i] + swapped=True + + # if nothing moved, then array is sorted. + if (swapped==False): + break + + # otherwise, reset the swapped flag so that it + # can be used in the next stage + swapped = False + + # move the end point back by one, because + # item at the end is in its rightful spot + end = end-1 + + # from right to left, doing the same + # comparison as in the previous stage + for i in range(end-1, start-1,-1): + if (a[i] > a[i+1]): + a[i], a[i+1] = a[i+1], a[i] + swapped = True + + # increase the starting point, because + # the last stage would have moved the next + # smallest number to its rightful spot. + start = start+1 + +# Driver code to test above +a = [5, 1, 4, 2, 8, 0, 2] +cocktailSort(a) +print("Sorted array is:") +for i in range(len(a)): + print ("%d" %a[i]), + + +#output +#Sorted array is: 0 1 2 2 4 5 8