Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int v[100],n;
- void sortare(intv[],int s,int d)
- {
- int aux;
- if(v[s]>v[d])
- aux=v[s];
- v[s]=v[d];
- v[d]=aux;
- }
- void interclasare(int v[],int s,int m,int d)
- {
- int i,j,k,u[100];
- i=s;j=m+1;k=0;
- while(i<=m && j<=d)
- {
- if(v[i]<v[j])
- {
- k++;
- v[k]=v[i];
- i++;
- }
- else
- {
- k++;
- v[k]=v[j];
- j++;
- }
- }
- if(i<=m)
- {for(j=i;j<=m;j++)
- k++;
- u[k]=v[j];}
- if(j<=d)
- for(i=j;i<=d;i++)
- {
- k++;
- u[k]=v[i];
- }
- k=1;
- for(i=s;i<=d;i++)
- {
- v[i]=u[k];
- k++;
- }
- }
- void mergesort(int v[],int s, int d)
- {
- if(d-s<=1)
- sortare(v,s,d);
- else
- {
- m=(s+d)/2;
- mergesort(v,s,m);
- mergesort(v,m+1,d);
- interclasare(v,s,m,d);
- }
- }
- int main()
- {
- int v[100],n,i;
- cin>>n;
- for(i=1;i<=n;i++)
- cin>>v[i];
- mergesort(v,1,n);
- for(i=1;i<=n;i++)
- cout<<v[i]<<" ";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement