fork download
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. void sort(int * a, size_t size)
  6. {
  7. for(size_t i = 0; i < size-1; ++i)
  8. {
  9. // Начиная от i, ищем минимальный элемент
  10. int m = a[i]; size_t mi = i;
  11. for(size_t j = i; j < size; ++j)
  12. if (m > a[j]) { m = a[j]; mi = j; }
  13.  
  14. // Копируем вправо
  15. for(size_t j = mi; j > i; --j)
  16. a[j] = a[j-1];
  17.  
  18. // Вставляем
  19. a[i] = m;
  20. }
  21. }
  22.  
  23. int main()
  24. {
  25. int a[20];
  26. for(int i = 0; i < 20; ++i) a[i] = rand()%50;
  27. for(int i = 0; i < 20; ++i) printf(" %2d",a[i]); puts("");
  28. sort(a,20);
  29. for(int i = 0; i < 20; ++i) printf(" %2d",a[i]); puts("");
  30. }
  31.  
Success #stdin #stdout 0s 4472KB
stdin
Standard input is empty
stdout
 33 36 27 15 43 35 36 42 49 21 12 27 40  9 13 26 40 26 22 36
  9 12 13 15 21 22 26 26 27 27 33 35 36 36 36 40 40 42 43 49