From cfa42096077a4143363d8ab7e974e887481e2d84 Mon Sep 17 00:00:00 2001 From: BhargavKeerthipati <126644714+BhargavKeerthipati@users.noreply.github.com> Date: Tue, 31 Oct 2023 10:33:52 +0530 Subject: [PATCH] Create CocktailSort.java --- CocktailSort.java | 70 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 CocktailSort.java diff --git a/CocktailSort.java b/CocktailSort.java new file mode 100644 index 0000000..1666352 --- /dev/null +++ b/CocktailSort.java @@ -0,0 +1,70 @@ + +public class CocktailSort +{ + void cocktailSort(int a[]) + { + boolean swapped = true; + int start = 0; + int end = a.length; + while (swapped == true) + { + // reset the swapped flag on entering the + // loop, because it might be true from a + // previous iteration. + swapped = false; + // loop from bottom to top same as + // the bubble sort + for (int i = start; i < end - 1; ++i) + { + if (a[i] > a[i + 1]) { + int temp = a[i]; + a[i] = a[i + 1]; + a[i + 1] = temp; + 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 top to bottom, doing the + // same comparison as in the previous stage + for (int i = end - 1; i >= start; i--) + { + if (a[i] > a[i + 1]) + { + int temp = a[i]; + a[i] = a[i + 1]; + a[i + 1] = temp; + swapped = true; + } + } + // increase the starting point, because + // the last stage would have moved the next + // smallest number to its rightful spot. + start = start + 1; + } + } + /* Prints the array */ + void printArray(int a[]) + { + int n = a.length; + for (int i = 0; i < n; i++) + System.out.print(a[i] + " "); + System.out.println(); + } + // Driver code + public static void main(String[] args) + { + CocktailSort ob = new CocktailSort(); + int a[] = { 5, 1, 4, 2, 8, 0, 2 }; + ob.cocktailSort(a); + System.out.println("Sorted array"); + ob.printArray(a); + } +}