#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 < end; i++) { if (arr[i] > arr[i + 1]) { temp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = temp; changed = TRUE; } } end--; 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; } } start++; } } 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 < n; i++) { printf("%d ", arr[i]); } cocktailSort(arr, n); printf("\nSorted array: "); for (i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n"); free(arr); return 0; }