Pagini recente » Cod sursa (job #1093904) | Cod sursa (job #3161228) | Cod sursa (job #2719324) | Cod sursa (job #1429939) | Cod sursa (job #3253388)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
const int nmax=500000;
int aux[nmax+5];
int n,x[nmax+5];
void mergesort(int left, int right){
if(left==right)
return;
int mid=(left+right)/2;
mergesort(left,mid);
mergesort(mid+1,right);
int i=left,j=mid+1,k=left;
while(i<=mid && j<=right){
if(x[i]<x[j])
aux[k++]=x[i++];
else
aux[k++]=x[j++];
}
while(i<=mid)
aux[k++]=x[i++];
while(j<=right)
aux[k++]=x[j++];
for(k=left;k<=right;k++)
x[k]=aux[k];
}
int main()
{
fin>>n;
for(int i=1;i<=n;i++){
fin>>x[i];
}
mergesort(1,n);
for(int i=1;i<=n;i++){
fout<<x[i]<<" ";
}
return 0;
}