Skip to content

Commit ce32371

Browse files
authored
Merge pull request deutranium#183 from srusti610/master
cocktail_sort
2 parents f9d3ad0 + 09517a7 commit ce32371

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

sortingAlgo/cocktail_sort_c++.cpp

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#include<iostream>
2+
using namespace std;
3+
void cocktailSort(int arr[], int n){
4+
bool flag = true;
5+
int start = 0, end = n-1;
6+
while(flag){
7+
flag = false;
8+
for(int i = start; i<end; i++){ //scan from left to right as bubble sort
9+
if(arr[i] > arr[i+1]){
10+
swap(arr[i], arr[i+1]);
11+
flag = true;
12+
}
13+
}
14+
if(!flag){ //if nothing has changed simply break the loop
15+
break;
16+
}
17+
flag = false;
18+
end--; //decrease the end pointer
19+
for(int i = end - 1; i >= start; i--){ //scan from right to left
20+
if(arr[i] > arr[i+1]){
21+
swap(arr[i], arr[i+1]);
22+
flag = true;
23+
}
24+
}
25+
start++;
26+
}
27+
}
28+
main() {
29+
int data[] = {54, 74, 98, 154, 98, 32, 20, 13, 35, 40};
30+
int n = sizeof(data)/sizeof(data[0]);
31+
cout << "Sorted Sequence ";
32+
cocktailSort(data, n);
33+
for(int i = 0; i <n;i++){
34+
cout << data[i] << " ";
35+
}
36+
}

0 commit comments

Comments
 (0)