Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define vi vector
- #define int long long
- vi result;
- void length(int n) {
- result.resize(n);
- }
- void Merge(int arr[], int l, int mid, int r) {
- int i = l;
- int j = mid+1;
- int k = 0; // For result array
- while(i <= mid && j <=r) {
- if(arr[i] <= arr[j]) {
- result[k] = arr[i];
- i++;k++;
- }
- else {
- result[k] = arr[j];;
- j++;k++;
- }
- }
- while(i <= mid) {
- result[k] = arr[i];
- i++;k++;
- }
- while(j <= r) {
- result[k] = arr[j];;
- j++; k++;
- }
- }
- void MergeSort(int arr[], int l, int r) { // l-> first position of array, r-> last positon…
- if(r > l) {
- // 1. Find Mid value
- int mid = (l + r) / 2;
- // 2. Divide
- MergeSort(arr,l, mid);
- MergeSort(arr,mid+1, r);
- // Merge these elements
- Merge(arr, l, mid, r);
- }
- }
- int32_t main() {
- int n;
- cin>>n;
- int arr[n];
- for(int i=0 ;i<n;i++)
- cin>>arr[i];
- length(n);
- MergeSort(arr,0,n-1);
- for(auto x: result) {
- cout<<x<<" “;
- }
- cout<<”\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement