Pagini recente » Cod sursa (job #503124) | Cod sursa (job #1839677) | Cod sursa (job #371015) | Cod sursa (job #2059444) | Cod sursa (job #1023197)
#include<iostream>
using namespace std;
void mergesort(int n,int v[])
{ int i,h,c,d,t;
int u[n],w[n];
if(n==1) return;
if(n==2) {
if(v[0]>v[1])
{t=v[0];v[0]=v[1];v[1]=t;}
return;
}
h=n/2;
for(i=0;i<h;i++)
u[i]=v[i];
for(i=h;i<n;i++)
w[i-h]=v[i];
mergesort(h,u);
mergesort(n-h,w);
c=0;d=0;
for(i=0;i<h;i++)
{ while ((c<n-h)&&(w[c]<=u[i]))
{v[d]=w[c];
d++;c++;
}
v[d]=w[i];d++;
}
}
int main ()
{ int n,i,v[500000];
cin>>n;
for(i=0;i<n;i++)
cin>>v[i];
mergesort(n,v);
for(i=0;i<n;i++)
cout<<v[i]<<" ";
cin>>n;
return 0;
}