Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4. void merge(int* arr, int start, int mid, int end)
  5. {
  6. int arr1Len = mid - start;
  7. int arr2Len = end - mid;
  8. int* arr1 = new int[arr1Len];
  9. int* arr2 = new int[arr2Len];
  10.  
  11. int arr1Counter = 0;
  12. int arr2Counter = 0;
  13. int mainCounter = 0;
  14.  
  15. while (arr1Counter < arr1Len && arr2Counter < arr2Counter)
  16. {
  17. arr[mainCounter] = min(arr1[arr1Counter], arr2[arr2Counter]);
  18. if (arr1[arr1Counter] < arr2[arr2Counter])
  19. {
  20. arr1Counter++;
  21. }
  22. else
  23. {
  24. arr2Counter++;
  25. }
  26. mainCounter++;
  27. }
  28.  
  29. delete[]arr1;
  30. delete[]arr2;
  31. }
  32.  
  33. void merge_sort(int* arr, int leftLim, int rightLim)
  34. {
  35. int middle = (leftLim + rightLim )/ 2;
  36. merge_sort(arr, leftLim, middle);
  37. merge_sort(arr, middle + 1, rightLim);
  38. merge(arr, leftLim, middle, rightLim);
  39. }
  40.  
  41. int main()
  42. {
  43. int arr_1[10] = { 7,5,3,2,6,2,3,4,1,2 };
  44. int mid = 10 / 2;
  45.  
  46. merge_sort(arr_1, 0, 9);
  47.  
  48. for (int i = 0; i < 10; ++i)
  49. {
  50. cout << arr_1[i] << endl;
  51. }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement