fork download
  1. #include <stdio.h>
  2. int count;
  3. int cmp(int x, int y) // compare x and y
  4. {
  5. return x > y; // 1 if x > y, 0 otherwise
  6. }
  7.  
  8. void swap(int *x, int *y)
  9. {
  10. count++;
  11. int tmp = *x;
  12.  
  13. *x = *y;
  14. *y = tmp;
  15. }
  16.  
  17. int main(void)
  18. {
  19. int a[] = {3, 1, 4, 1, 5, 9, 2, 6, 5}; // array to be sorted
  20. size_t n = sizeof a / sizeof a[0]; // number of elements
  21.  
  22. for (size_t i =0; i <n -1; ++i) {
  23. for (size_t j = 0; j < n - 1 - i; ++j) {
  24. if (cmp( a[j], a[j+1] )) {
  25. swap( &a[j], &a[j+1] );
  26. }
  27. }
  28. }
  29.  
  30.  
  31.  
  32. for (size_t i = 0; i < n; ++i) {
  33. printf("%d ", a[i]);
  34. }
  35. printf("\n");
  36. printf("%d",count);
  37. return 0;
  38. }
  39.  
  40.  
Success #stdin #stdout 0s 5344KB
stdin
Standard input is empty
stdout
1 1 2 3 4 5 5 6 9 
10