fork(1) download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. void MergeSort ( int left,int right);
  5.  
  6. int d[5] = {3, 6 , 4, 10, 1};
  7. int p[5];
  8.  
  9. int main ()
  10. {
  11. int x = 0;
  12.  
  13.  
  14. MergeSort(0, 5);
  15.  
  16. for(; x < 6; x++)
  17. printf("%d ", p[x]);
  18.  
  19. printf("\n");
  20.  
  21. for(x = 0; x < 6; x++)
  22. printf("%d ", d[x]);
  23.  
  24. return 0;
  25. }
  26.  
  27. void MergeSort (int left,int right)
  28. {
  29.  
  30. //printf("%d\t", left);
  31. int mid = 0, tmp_l, tmp_m, i;
  32.  
  33. mid = (left + right + 1) / 2;
  34.  
  35. if (mid - left > 1)
  36. MergeSort (left, mid - 1);
  37.  
  38. if (right - mid > 0)
  39. MergeSort (mid, right);
  40.  
  41. tmp_l = left;
  42. tmp_m = mid;
  43.  
  44. for (i = left; i <= right; i++)
  45. p[i] = ((tmp_l == mid) || ((tmp_m <= right) && (d[tmp_l] > d[tmp_m]))) ? d[tmp_m++] : d[tmp_l++];
  46.  
  47.  
  48. for (i = left; i <= right; i++)
  49. d[i] = p[i];
  50. }
Success #stdin #stdout 0.02s 2680KB
stdin
Standard input is empty
stdout
0 1 3 4 6 10 
0 1 3 4 6 10