fork download
  1. // Optimized implementation of Bubble sort
  2. #include <stdbool.h>
  3. #include <stdio.h>
  4.  
  5. void swap(int* xp, int* yp){
  6. int temp = *xp;
  7. *xp = *yp;
  8. *yp = temp;
  9. }
  10.  
  11. // An optimized version of Bubble Sort
  12. void bubbleSort(int arr[], int n){
  13. int i, j;
  14. bool swapped;
  15. for (i = 0; i < n - 1; i++) {
  16. swapped = false;
  17. for (j = 0; j < n - i - 1; j++) {
  18. if (arr[j] > arr[j + 1]) {
  19. swap(&arr[j], &arr[j + 1]);
  20. swapped = true;
  21. }
  22. }
  23.  
  24. // If no two elements were swapped by inner loop,
  25. // then break
  26. if (swapped == false)
  27. break;
  28. }
  29.  
  30.  
  31. }
  32.  
  33. // Function to print an array
  34. void printArray(int arr[], int size){
  35. int i;
  36. for (i = 0; i < size; i++)
  37. printf("%d ", arr[i]);
  38. }
  39.  
  40. int main(){
  41. int arr[] = { 37, 43, 36, 18, 1, 16, 11, 29 ,2 , 28};
  42. int n = sizeof(arr) / sizeof(arr[0]);
  43. bubbleSort(arr, n);
  44. printf("\nSorted array:");
  45. printArray(arr, n);
  46. return 0;
  47. }
Success #stdin #stdout 0s 5284KB
stdin
Standard input is empty
stdout
Sorted array:1 2 11 16 18 28 29 36 37 43