Skip to content

Commit 889e0a1

Browse files
authored
Merge pull request deutranium#187 from Mayuresh-loves-cpp/master
C: implemeted cocktail sort in C
2 parents 5720213 + 0fb443f commit 889e0a1

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#include <stdio.h>
2+
3+
void cocktail_sort(int *arr, int length)
4+
{
5+
int start = 0, end = length - 1, flag = 1, temp;
6+
while (flag)
7+
{
8+
flag = 0;
9+
for (int i = start; i < end; i++)
10+
{
11+
if (arr[i] > arr[i + 1])
12+
{
13+
temp = arr[i];
14+
arr[i] = arr[i + 1];
15+
arr[i + 1] = temp;
16+
flag = 1;
17+
}
18+
}
19+
if (!flag)
20+
break;
21+
flag = 0;
22+
end--;
23+
for (int i = end - 1; i >= start; i--)
24+
{
25+
if (arr[i] > arr[i + 1])
26+
{
27+
temp = arr[i];
28+
arr[i] = arr[i + 1];
29+
arr[i + 1] = temp;
30+
flag = 1;
31+
}
32+
}
33+
start++;
34+
}
35+
}
36+
37+
void main()
38+
{
39+
int arr[] = {54, 74, 98, 154, 98, 32, 20, 13, 35, 40}, size = sizeof(arr) / sizeof(arr[0]);
40+
printf("array before: ");
41+
for (int i = 0; i < size; i++)
42+
{
43+
printf("%d, ", arr[i]);
44+
}
45+
printf("\nperforming cocktail sort...");
46+
cocktail_sort(arr, size);
47+
printf("\narray after: ");
48+
for (int i = 0; i < size; i++)
49+
{
50+
printf("%d, ", arr[i]);
51+
}
52+
printf("\n");
53+
}

0 commit comments

Comments
 (0)