Summary: Cocktail sort is a variation of bubble sort

that is both a stable sorting algorithm and a comparison sort.

The algorithm differs from a bubble sort in that it sorts in both

directions on each pass through the list. This sorting algorithm

is only marginally more difficult to implement than a bubble sort,

and solves the problem of turtles in bubble sorts.

The various names of cocktail sort are bidirectional bubble sort,

cocktail shaker sort, shaker sort,

ripple sort, shuffle sort, shuttle sort or happy hour sort.

Complexity - O(n^2)

*/

#include

#define MAX 8

int main()

{

int data[MAX];

int i, j, n, c;

printf("\nEnter the data");

for (i = 0; i < MAX; i++)

{

scanf("%d", &data[i]);

}

n = MAX;

do

{

/*Rightward pass will shift the largest

element to its correct place at the end*/

for (i = 0; i < n - 1; i++)

{

if (data[i] > data[i + 1])

{

data[i] = data[i] + data[i + 1];

data[i + 1] = data[i] - data[i + 1];

data[i] = data[i] - data[i + 1];

}

}

n = n - 1;

/* Leftward pass will shift the smallest element to

its correct place at the beginning*/

for (i= MAX - 1, c = 0; i >= c; i--)

{

if(data[i] < data[i - 1])

{

data[i] = data[i] + data[i - 1];

data[i - 1] = data[i] - data[i - 1];

data[i] = data[i] - data[i - 1];

}

}

c = c + 1;

} while (n != 0 && c != 0);

printf("The sorted elements are:");

for (i = 0; i < MAX; i++)

{

printf("%d\t", data[i]);

}

}

_______________________________OUPUT______________________________

Enter the data 12

342

4

563

43

5

3

2

The sorted elements are:2 3 4 5 12 43 342 563

--------------------------------

Post Views: 729