fork download
  1. #include <stdio.h>
  2.  
  3. void oddEvenSort(int arr[], int n) {
  4. int sorted = 0;
  5. while (!sorted) {
  6. sorted = 1;
  7.  
  8. // Odd phase
  9. for (int i = 1; i < n - 1; i += 2) {
  10. if (arr[i] > arr[i + 1]) {
  11. int temp = arr[i];
  12. arr[i] = arr[i + 1];
  13. arr[i + 1] = temp;
  14. sorted = 0;
  15. }
  16. }
  17.  
  18. // Even phase
  19. for (int i = 0; i < n - 1; i += 2) {
  20. if (arr[i] > arr[i + 1]) {
  21. int temp = arr[i];
  22. arr[i] = arr[i + 1];
  23. arr[i + 1] = temp;
  24. sorted = 0;
  25. }
  26. }
  27. }
  28. }
  29.  
  30. void printArray(int arr[], int n) {
  31. for (int i = 0; i < n; i++) {
  32. printf("%d ", arr[i]);
  33. }
  34. printf("\n");
  35. }
  36.  
  37. int main() {
  38. int arr[] = {34, 2, 10, 19, 3, 7, 25};
  39. int n = sizeof(arr) / sizeof(arr[0]);
  40.  
  41. printf("Original array: ");
  42. printArray(arr, n);
  43.  
  44. oddEvenSort(arr, n);
  45.  
  46. printf("Sorted array: ");
  47. printArray(arr, n);
  48.  
  49. return 0;
  50. }
Success #stdin #stdout 0.01s 5300KB
stdin
64,45,87,34,26
stdout
Original array: 34 2 10 19 3 7 25 
Sorted array: 2 3 7 10 19 25 34