fork download
  1. #include<stdio.h>
  2. #include<string.h>
  3.  
  4. int k;
  5. void merge(int L[],int R[],int A[],int nl,int nr)
  6. {
  7.  
  8. //nl=sizeof(L)/sizeof(L[0]);
  9. //nr=sizeof(R)/sizeof(R[0]);
  10. int i=0,j=0;
  11. while(i<nl && j<nr)
  12. {
  13. if(L[i]<R[j])
  14. {
  15. A[k]=L[i];
  16. i++;
  17. }
  18. else
  19. {
  20. A[k]=R[j];
  21. j++;
  22. }
  23. k++;
  24. }
  25. while(i<nl)
  26. {
  27. A[k]=L[i];
  28. i++;
  29. k++;
  30. }
  31. while(j<nr)
  32. {
  33. A[k]=R[j];
  34. j++;
  35. k++;
  36. }
  37. }
  38.  
  39. void mergeSort(int A[],int n)
  40. {
  41. if(n<2)
  42. return;
  43. int i,j;
  44. int L[n/2];
  45. int R[n-(n/2)];
  46. for(i=0;i<n/2;i++)
  47. {
  48. L[i]=A[i];
  49. }
  50. for(j=0;j<n-(n/2);j++)
  51. {
  52. R[j]=A[(n/2)+j];
  53. }
  54. mergeSort(L,n/2);
  55. mergeSort(R,n-(n/2));
  56. merge(L,R,A,n/2,n-(n/2));
  57. }
  58.  
  59. int A[]={3,4,6,2,3,4,1,0};
  60.  
  61. int main(void)
  62. {
  63. mergeSort(A,8);
  64. int i;
  65. for(i=0;i<8;i++)
  66. {
  67. printf("%d ",A[i]);
  68. }
  69. return 0;
  70. }
Runtime error #stdin #stdout 0s 2004KB
stdin
2

3
3
1
2

5
2
3
8
6
1
stdout
Standard output is empty