fork download
  1. #include <stdio.h>
  2.  
  3.  
  4.  
  5. void merge(long a[], long s,long e)
  6. {
  7. long mid=(s+e)/2;
  8. long i=s;
  9. long k=s;
  10. long j=mid+1;
  11. long b[1000000];
  12. while(i<=mid && j<=e)
  13. {
  14. if(a[i]<a[j])
  15. b[k++]=a[i++];
  16. else
  17. b[k++]=a[j++];
  18. }
  19. while(i<=mid)
  20. {
  21. b[k++]=a[i++];
  22. }
  23.  
  24. while(j<=e)
  25. {
  26. b[k++]=a[j++];
  27. }
  28.  
  29. for(long c=s;c<=e;c++)
  30. a[c]=b[c];
  31.  
  32. }
  33.  
  34.  
  35.  
  36.  
  37. void mergesort(long a[], long s, long e)
  38. {
  39. if(s>=e)
  40. return;
  41.  
  42. long mid=(s + e)/2;
  43.  
  44. mergesort(a,s,mid);
  45. mergesort(a,mid+1,e);
  46. merge(a,s,e);
  47.  
  48. }
  49.  
  50.  
  51. int main(void) {
  52. long t,a[1000000]={0};
  53. // your code goes here
  54. scanf("%ld",&t);
  55. long h=0,g;
  56. while(h<t)
  57. {
  58.  
  59. scanf("%ld",&a[h]);
  60. h++;
  61. }
  62. mergesort(a,0,t-1);
  63.  
  64. for(long d=0; d<t; d++){
  65. printf("%ld\n",a[d]);}
  66.  
  67.  
  68. return 0;
  69. }
  70.  
Success #stdin #stdout 0s 9424KB
stdin
5
5
3
6
7
1
stdout
1
3
5
6
7