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