Pagini recente » Cod sursa (job #1207798) | Cod sursa (job #1744830) | Cod sursa (job #1635798) | Cod sursa (job #1063329) | Cod sursa (job #1220217)
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
long a[500001];
void interc(int st,int m,int dr)
{
long b[dr-st+2],i=st,j=m+1,k=0;
while(i<=m && j<=dr)
if(a[i]<a[j]) b[++k]=a[i++];
else b[++k]=a[j++];
for(;i<=m;i++) b[++k]=a[i];
for(;j<=dr;j++) b[++k]=a[j];
for(i=st;i<=dr;i++) a[i]=b[i-st+1];
}
void mergesort(int st,int dr)
{
int m;
if(st==dr) return;
m=(st+dr)>>1;
mergesort(st,m);
mergesort(m+1,dr);
interc(st,m,dr);
}
int main()
{
int n,i,Gmax,G=0;
f>>n;
for(i=1;i<=n;i++) f>>a[i];
f.close();
mergesort(1,n);
for(i=1;i<=n;i++) g<<a[i]<<" ";
g.close();
return 0;
}