diff --git a/sorting/Cocktail_Sort.c b/sorting/Cocktail_Sort.c new file mode 100644 index 00000000..4fd0ef4d --- /dev/null +++ b/sorting/Cocktail_Sort.c @@ -0,0 +1,73 @@ +#include +#include + +#define TRUE 1 +#define FALSE 0 + +void cocktailSort(int arr[], int size) +{ + int i, changed = TRUE, temp, start = 0, end = size - 1; + + while (changed) + { + changed = FALSE; + for (i=start; i arr[i+1]) + { + temp = arr[i]; + arr[i] = arr[i+1]; + arr[i+1] = temp; + changed = TRUE; + } + } + + if (changed == FALSE) + { + break; + } + changed = FALSE; + + for (i=end-1; i>=start; i--) + { + if (arr[i+1] < arr[i]) + { + temp = arr[i+1]; + arr[i+1] = arr[i]; + arr[i] = temp; + changed = TRUE; + } + } + } +} + +int main() +{ + int i, n; + + printf("Enter the size of the array: "); + scanf("%d", &n); + int* arr = (int*)malloc(sizeof(int) * n); + + for (i = 0; i < n; i++) + { + printf("Number #%d: ", i + 1); + scanf("%d", &arr[i]); + } + + printf("You entered: "); + for (i=0; i #include -int pigeonholeSort(int arr[], int size) +void pigeonholeSort(int arr[], int size) { int i, j, min = arr[0], max = arr[0], range; @@ -55,7 +55,7 @@ int main() scanf("%d", &arr[i]); } - printf("You entered: "); + printf("You entered: "); for (i=0; i