Advertisement
Guest User

Untitled

a guest
Oct 17th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3.  
  4.  
  5. void merge(int arr[], int l, int m, int r)
  6. {
  7. int i, j, k;
  8. int n1 = m - l + 1;
  9. int n2 = r - m;
  10.  
  11.  
  12. int L[n1], R[n2];
  13.  
  14.  
  15. for (i = 0; i < n1; i++)
  16. L[i] = arr[l + i];
  17. for (j = 0; j < n2; j++)
  18. R[j] = arr[m + 1+ j];
  19.  
  20.  
  21. i = 0;
  22. j = 0;
  23. k = l;
  24. while (i < n1 && j < n2)
  25. {
  26. if (L[i] <= R[j])
  27. {
  28. arr[k] = L[i];
  29. i++;
  30. }
  31. else
  32. {
  33. arr[k] = R[j];
  34. j++;
  35. }
  36. k++;
  37. }
  38.  
  39.  
  40. while (i < n1)
  41. {
  42. arr[k] = L[i];
  43. i++;
  44. k++;
  45. }
  46.  
  47.  
  48. while (j < n2)
  49. {
  50. arr[k] = R[j];
  51. j++;
  52. k++;
  53. }
  54. }
  55.  
  56.  
  57. void mergeSort(int arr[], int l, int r)
  58. {
  59. if (l < r)
  60. {
  61.  
  62. int m = l+(r-l)/2;
  63.  
  64.  
  65. mergeSort(arr, l, m);
  66. mergeSort(arr, m+1, r);
  67.  
  68. merge(arr, l, m, r);
  69. }
  70. }
  71.  
  72.  
  73. void printArray(int A[], int size)
  74. {
  75. int i;
  76. for (i=0; i < size; i++)
  77. cout << A[i];
  78. cout << endl;
  79. }
  80.  
  81.  
  82. int main()
  83. {
  84. int arr_size;
  85. cout << "Enter Size Of The Array : ";
  86. cin >> arr_size;
  87. int arr[arr_size];
  88.  
  89. for(int i = 0; i<arr_size;i++){
  90. cin >> arr[i];
  91. }
  92.  
  93. cout << "Given array is " << endl;
  94. printArray(arr, arr_size);
  95.  
  96. mergeSort(arr, 0, arr_size - 1);
  97.  
  98. cout << ("\nSorted array is ") << endl;
  99. printArray(arr, arr_size);
  100.  
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement