Pagini recente » Riremito | Profil Daria09 | Diferente pentru utilizator/popoiu.george intre reviziile 38 si 39 | Diferente pentru concursuri intre reviziile 132 si 131 | Cod sursa (job #2488085)
#include <bits/stdc++.h>
using namespace std;
int n;
int aux[500005],a[500005];
ifstream fin("algsort.in");
ofstream fout("algsort.out");
void sortezzz (int left, int right)
{ int i,j,k,mid;
if(left==right) return;
mid=(left+right)/2;
sortezzz(left,mid);
sortezzz(mid+1,right);
for(i=left ; i<=right; i++)
aux[i]=0;
i=left;
j=mid+1;
k=left;
while(i<=mid && j<=right)
{
if(a[i]<a[j])
{
aux[k++]=a[i];
i++;
}
else
{
aux[k++]=a[j];
j++;
}
}
while(i<=mid)
{
aux[k++]=a[i];
i++;
}
while(j<=right)
{
aux[k++]=a[j];
j++;
}
for(i=left; i<=right; i++)
a[i]=aux[i];
}
int main()
{
fin>>n;
for(int i=1; i<=n; i++)
fin>>a[i];
sortezzz(1,n);
for(int i=1; i<=n; i++)
fout<<a[i]<<" ";
}