From 764275fad48dd800279c0d0b88850bd43dfb96ef Mon Sep 17 00:00:00 2001 From: Akshama Date: Wed, 1 Nov 2017 03:48:07 +0530 Subject: [PATCH 1/3] Create cocktail_sort.cpp --- Cocktail_Sort/Cpp/cocktail_sort.cpp | 76 +++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 Cocktail_Sort/Cpp/cocktail_sort.cpp diff --git a/Cocktail_Sort/Cpp/cocktail_sort.cpp b/Cocktail_Sort/Cpp/cocktail_sort.cpp new file mode 100644 index 000000000..7373bcd9e --- /dev/null +++ b/Cocktail_Sort/Cpp/cocktail_sort.cpp @@ -0,0 +1,76 @@ +//Author: Akshama +#include +using namespace std; + +// Sorts arrar a[0..n-1] using Cocktail sort +void CocktailSort(int a[], int n) +{ + bool swapped = true; + int start = 0; + int end = n-1; + + while (swapped) + { + // 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 (int i = start; i < end; ++i) + { + if (a[i] > a[i + 1]) + { + swap(a[i], a[i+1]); + swapped = true; + } + } + + // if nothing moved, then array is sorted. + if (!swapped) + 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; + + // from right to left, doing the + // same comparison as in the previous stage + for (int i = end - 1; i >= start; --i) + { + if (a[i] > a[i + 1]) + { + swap(a[i], a[i+1]); + swapped = true; + } + } + + // increase the starting point, because + // the last stage would have moved the next + // smallest number to its rightful spot. + ++start; + } +} + +/* Prints the array */ +void printArray(int a[], int n) +{ + for (int i=0; i Date: Wed, 1 Nov 2017 03:50:07 +0530 Subject: [PATCH 2/3] Update cocktail_sort.cpp --- Cocktail_Sort/Cpp/cocktail_sort.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cocktail_Sort/Cpp/cocktail_sort.cpp b/Cocktail_Sort/Cpp/cocktail_sort.cpp index 7373bcd9e..282c1dfd5 100644 --- a/Cocktail_Sort/Cpp/cocktail_sort.cpp +++ b/Cocktail_Sort/Cpp/cocktail_sort.cpp @@ -2,7 +2,7 @@ #include using namespace std; -// Sorts arrar a[0..n-1] using Cocktail sort +// Sorts array a[0..n-1] using Cocktail sort void CocktailSort(int a[], int n) { bool swapped = true; From e0a0965fd617d860d2e983d300c058b880073c60 Mon Sep 17 00:00:00 2001 From: Thuvarakan Tharmarajasingam Date: Tue, 7 Nov 2017 16:00:47 +0530 Subject: [PATCH 3/3] Rename Cocktail_Sort/Cpp/cocktail_sort.cpp to CocktailSort/Cpp/CocktailSort.cpp --- .../Cpp/cocktail_sort.cpp => CocktailSort/Cpp/CocktailSort.cpp | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Cocktail_Sort/Cpp/cocktail_sort.cpp => CocktailSort/Cpp/CocktailSort.cpp (100%) diff --git a/Cocktail_Sort/Cpp/cocktail_sort.cpp b/CocktailSort/Cpp/CocktailSort.cpp similarity index 100% rename from Cocktail_Sort/Cpp/cocktail_sort.cpp rename to CocktailSort/Cpp/CocktailSort.cpp