Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define MAX 10000
- int a[111111];
- void merg(int a[],int s, int mid, int e)
- {
- int left=mid-s+1;
- int right=e-mid;
- int leftA[11111];
- int rightA[11111];
- for(int i=0;i<left;i++){
- leftA[i]=a[s+i];
- }
- leftA[left]=MAX;
- for(int i=0;i<right;i++){
- rightA[i]=a[mid+1+i];
- }
- rightA[right]=MAX;
- int limit=(left+right);
- int j=0, k=0;
- for(int i=0;i<limit;i++){
- if(leftA[j]<rightA[k]){
- a[i]=leftA[j];
- j++;
- }
- else{
- a[i]=rightA[k];
- k++;
- }
- }
- }
- void mergeSort(int a[], int s, int e)
- {
- if(s<e){
- int mid=(s+e)/2;
- mergeSort(a,s,mid);
- mergeSort(a,mid+1,e);
- merg(a,s,mid,e);
- }
- }
- int main()
- {
- int n;
- scanf("%d", &n);
- int a[n+3];
- for(int i=0;i<n;i++) scanf("%d", &a[i]);
- mergeSort(a,0,n);
- for(int i=0;i<n;i++) printf("%d ", &a[i]);
- printf("\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement