fork download
  1. #include<stdio.h>
  2. #include<math.h>
  3. void merge(int a[], int l, int m, int r) {
  4. int i; int y ;
  5. for(; l < m && m < r; ++l)
  6. if (!(a[l] < a[m])) {
  7. y = a[m++];
  8. for (i = m - 1; i > l; --i)
  9. a[i] = a[i-1];
  10. a[l] = y;
  11. }
  12. }
  13.  
  14. void sort1(int a[], int n , int l, int r) {
  15. int m;
  16. if (r - l > 1) {
  17. m = l + (r - l) / 2;
  18. sort1(a,n, l, m);
  19. sort1(a,n, m, r);
  20. merge(a,l, m, r);
  21. }
  22. }
  23.  
  24. void main(){
  25. int n;
  26. scanf("%d",&n);
  27. int a[n];
  28. for(int i=0;i<n;i++){
  29. scanf("%d",&a[i]);
  30. }
  31. //merge sort
  32. sort1(a,n,1,n);
  33. for(int i=0;i<n;i++){
  34. printf("%d ",a[i]);
  35. }
  36. }
Success #stdin #stdout 0s 5424KB
stdin
5 5 4 2 1 3
stdout
5 1 2 3 4