Pagini recente » Cod sursa (job #2790293) | Cod sursa (job #2223922) | Cod sursa (job #1962916) | Cod sursa (job #966136) | Cod sursa (job #2477442)
#include <fstream>
#define N 500001
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int a[N],n,b[N];
void Interclasare(int s, int d)
{
int m,k=s-1,i,j;
m=(s+d)/2;
i=s;
j=m+1;
while(i<=m && j<=d)
if(a[i]>a[j])
{
b[++k]=a[j]; j++;
}
else {b[++k]=a[i]; i++;}
while(i<=m){b[++k]=a[i]; i++;}
while(j<=d){b[++k]=a[j]; j++;}
for(i=s;i<=d;i++)
a[i]=b[i];
}
void MgSort(int x, int y)
{
int m;
m=(x+y)/2;
if(x!=y)
{
MgSort(x,m);
MgSort(m+1,y);
Interclasare(x,y);
}
}
int main()
{
fin>>n;
for(int i=1;i<=n;++i)
fin>>a[i];
MgSort(1,n);
for(int i=1;i<=n;i++)
fout<<a[i]<<" ";
return 0;
}