Advertisement
Guest User

Untitled

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