Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- int arr[1000],temp[1000];
- void merge(int left,int right,int mid)
- {
- int l=left,r=mid+1;
- for(int i=left; i<=right; i++)
- {
- if(l>mid)
- {
- temp[i]=arr[r++];
- continue;
- }
- else if(r> right)
- {
- temp[i]=arr[l++];
- continue;
- }
- temp[i]= (arr[l]< arr[r]) ? arr[l++] : arr[r++];
- }
- for(int i=left; i<=right; i++)
- arr[i]=temp[i];
- }
- void mergeSort(int left,int right)
- {
- if(left<right)
- {
- int mid=(left+right) >> 1;
- mergeSort(left,mid);
- mergeSort(mid+1,right);
- merge(left,right,mid);
- }
- }
- int main()
- {
- int n;
- scanf("%d",&n);
- for(int i=0; i<n; i++)
- scanf("%d",&arr[i]);
- mergeSort(0,n-1);
- for(int i=0; i<n; i++)
- printf("%d ",arr[i]);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement