Pagini recente » Cod sursa (job #604300) | Cod sursa (job #677008) | Cod sursa (job #2057780) | Cod sursa (job #270968) | Cod sursa (job #2292856)
#include <fstream>
#define nmax 500001
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int a[nmax],n;
void InterCls(int v[],int l,int m, int r)
{ int i,j,k=0;
int aux[nmax];
i=l;
j=m+1;
while(i<=m && j<=r)
if(v[i]<=v[j])
aux[k++]=v[i++];
else
aux[k++]=v[j++];
while(i<=m)
aux[k++]=v[i++];
while(j<=r)
aux[k++]=v[j++];
int ct=0;
for(i=l; i<=r; i++)
v[i]=aux[ct++];
}
void MergeSort(int v[],int l,int r)
{ if(l<r)
{int m=(l+r)/2;
MergeSort(v,l,m);
MergeSort(v,m+1,r);
InterCls(v,l,m,r);
}
}
int main()
{ fin>>n;
int i;
for(i=1; i<=n; i++)
fin>>a[i];
MergeSort(a,1,n);
for(i=1; i<=n; i++) fout<<a[i]<<" ";
return 0;
}