fork download
  1. #include <stdio.h>
  2.  
  3. int find_min(int ary[], int start, int end)
  4. {
  5. int x = start;
  6. for(int i = start + 1; i < end; i++) {
  7. if (ary[i] < ary[x])
  8. x = i;
  9. }
  10. return x;
  11. }
  12.  
  13. void swap(int ary[], int x, int y) {
  14. int tmp;
  15. tmp = ary[x];
  16. ary[x] = ary[y];
  17. ary[y] = tmp;
  18. }
  19.  
  20. void insertion_sort(int ary[], int nelem)
  21. {
  22. for (int i = 0; i < nelem; i++) {
  23. int n = find_min(ary,i,nelem);
  24. swap(ary,ary[i],ary[n]);
  25. }
  26. }
  27. int main () {
  28. int x[] = {5, 4, 2, 8, 6, 1};
  29. insertion_sort(x, 6);
  30. for(int i = 0; i < 6; i++) {
  31. printf("x[%d] = %d\n", i, x[i]);
  32. }
  33. return 0;
  34. }
Success #stdin #stdout 0s 9432KB
stdin
Standard input is empty
stdout
x[0] = 5
x[1] = 1
x[2] = 2
x[3] = 8
x[4] = 0
x[5] = 4