Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. void merge(int *dataMergeSort,int l,int m,int r)
  2. {
  3. int i,j,k;
  4. int n1 = m-l+1;
  5. int n2 = r-m;
  6.  
  7. int L[n1+1],R[n2+1]; // Two Temporary Arrays
  8.  
  9. for(i=0;i<n1;i++)
  10. {
  11. L[i] = dataMergeSort[l+i];
  12. //L[i] = A[l+i-1];
  13. }
  14.  
  15. for(j=0;j<n2;j++)
  16. {
  17. R[j] = dataMergeSort[m+j+1];
  18. // R[j] = A[m+j];
  19.  
  20. }
  21. L[n1]=32000;
  22. R[n2]=32000;
  23. i = 0; // Initial index of First Sub Array
  24. j = 0; // Initial index of Second Sub Array
  25. k = l; // Initial index of Merged Array
  26.  
  27. for(k=l;k<=r;k++)
  28. {
  29. if(L[i]<=R[j])
  30. dataMergeSort[k]=L[i++];
  31.  
  32. else
  33. dataMergeSort[k]=R[j++];
  34. }
  35. }
  36.  
  37. void MergeSort(int *dataMergeSort,int l, int r)
  38. {
  39. int m;
  40. if(l<r)
  41. {
  42. //m = l+(r-l)/2;
  43. int m = (l+r)/2;
  44. MergeSort(dataMergeSort,l,m);
  45. MergeSort(dataMergeSort,m+1,r);
  46. merge(dataMergeSort,l,m,r);
  47. }
  48. }
  49.  
  50. void ReadArrayMergeSort(int *dataMergeSort,int n)
  51. {
  52. int i;
  53. for(i=0;i<n;i++)
  54. {
  55. dataMergeSort[i] = rand() % 1000+1;
  56.  
  57. printf("[%d]",dataMergeSort[i]);
  58. // scanf("%d",&A[i]);
  59.  
  60. }
  61. printf("\n");
  62.  
  63. }
  64.  
  65. void displayMergeSort(int *dataMergeSort,int n)
  66. {
  67. int i;
  68. for(i=0;i<n;i++)
  69. {
  70. printf("[%d]",dataMergeSort[i]);
  71.  
  72. }
  73. printf("\n");
  74.  
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement