Pagini recente » Cod sursa (job #2382839) | Cod sursa (job #2686742) | Cod sursa (job #1718820) | Cod sursa (job #1260938) | Cod sursa (job #2743803)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[500005],w[500005];
int n,m,i,j,k,maxim,s,sum,p,u;
void inter(int i,int mid,int j){
int t=i;
int u=mid+1;
int k=i-1;
while(t<=mid&&u<=j){
if(v[t]>v[u]){
w[++k]=v[u];
u++;
}
else{
w[++k]=v[t];
t++;
}
}
for(;t<=mid;t++)
w[++k]=v[t];
for(;u<=j;u++)
w[++k]=v[u];
}
void mergesort(int i,int j){
if(i==j)
return;
int mid=(i+j)/2;
mergesort(i,mid);
mergesort(mid+1,j);
inter(i,mid,j);
for(int u=i;u<=j;u++)
v[u]=w[u];
}
int main(){
fin>>n;
for(i=1;i<=n;i++){
fin>>v[i];
w[i]=v[i];
}
mergesort(1,n);
for(i=1;i<=n;i++)
fout<<w[i]<<" ";
return 0;
}