Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- void merge(int arr[],int left, int mid, int right)
- {
- int l_size = (mid-left)+1;
- int r_size = right-mid;
- int l_arr[l_size],r_arr[r_size];
- for(int i=0;i<l_size;i++)
- l_arr[i] = arr[left+i];
- for(int i=0;i<r_size;i++)
- r_arr[i] = arr[mid+1+i];
- int i=0,j=0,k=left;
- while(i<l_size and j<r_size)
- {
- if(l_arr[i]<=r_arr[j])
- {
- arr[k] = l_arr[i];
- i++;
- }
- else
- {
- arr[k] = r_arr[j];
- j++;
- }
- k++;
- }
- while(i<l_size)
- {
- arr[k] = l_arr[i];
- i++;
- k++;
- }
- while(j<r_size)
- {
- arr[k] = r_arr[j];
- j++;
- k++;
- }
- }
- void mergesort(int arr[],int left,int right)
- {
- if(left>=right)
- return;
- int mid = left+(right-left)/2;
- mergesort(arr,left,mid);
- mergesort(arr,mid+1,right);
- merge(arr,left,mid,right);
- }
- int main()
- {
- #ifndef ONLINE_JUDGE
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- #endif
- int n;
- cin >> n;
- int arr[n];
- for(int i=0;i<n;i++)
- cin >> arr[i];
- mergesort(arr,0,n-1);
- for(int i=0;i<n;i++)
- cout << arr[i] << ' ';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement