Pagini recente » Cod sursa (job #2054959) | Cod sursa (job #2153619) | Cod sursa (job #957441) | Cod sursa (job #2277770) | Cod sursa (job #792463)
Cod sursa(job #792463)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int a[500001],c[500001];
void inter( int s, int m, int d)
{
int k=1;
int i=s, j=m+1;
while(i<=m && j<=d)
{
if(a[i]<a[j])
c[k++]=a[i++];
else c[k++]=a[j++];
}
while(i<=m)
c[k++] = a[i++];
while(j<=d)
c[k++] = a[j++];
k=1;
for(i=s;i<=d;i++)
a[i]=c[k++];
}
void ms( int s, int d)
{
if(s<d)
{
int m=(s+d)/2;
ms(m+1,d);
ms(s,m);
inter(s,m,d);
}
}
int main()
{
int n;
fin>>n;
for(int i=1;i<=n;i++)
fin>>a[i];
ms(1,n);
for(int i=1;i<=n;i++)
fout<<a[i]<<' ';
fin.close();
fout.close();
return 0;
}