Advertisement
Guest User

Untitled

a guest
Oct 2nd, 2020
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define vi vector
  4. #define int long long
  5.  
  6. vi result;
  7.  
  8. void length(int n) {
  9. result.resize(n);
  10. }
  11.  
  12. void Merge(int arr[], int l, int mid, int r) {
  13. int i = l;
  14. int j = mid+1;
  15. int k = 0; // For result array
  16. while(i <= mid && j <=r) {
  17. if(arr[i] <= arr[j]) {
  18. result[k] = arr[i];
  19. i++;k++;
  20. }
  21. else {
  22. result[k] = arr[j];;
  23. j++;k++;
  24. }
  25. }
  26. while(i <= mid) {
  27. result[k] = arr[i];
  28. i++;k++;
  29. }
  30. while(j <= r) {
  31. result[k] = arr[j];;
  32. j++; k++;
  33. }
  34. }
  35.  
  36. void MergeSort(int arr[], int l, int r) { // l-> first position of array, r-> last positon…
  37. if(r > l) {
  38. // 1. Find Mid value
  39. int mid = (l + r) / 2;
  40. // 2. Divide
  41. MergeSort(arr,l, mid);
  42. MergeSort(arr,mid+1, r);
  43. // Merge these elements
  44. Merge(arr, l, mid, r);
  45. }
  46. }
  47.  
  48. int32_t main() {
  49. int n;
  50. cin>>n;
  51. int arr[n];
  52. for(int i=0 ;i<n;i++)
  53. cin>>arr[i];
  54. length(n);
  55. MergeSort(arr,0,n-1);
  56. for(auto x: result) {
  57. cout<<x<<" “;
  58. }
  59. cout<<”\n";
  60. return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement