Pagini recente » Monitorul de evaluare | Cod sursa (job #897740) | Cod sursa (job #201853) | Monitorul de evaluare | Cod sursa (job #1190014)
#include<fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n,a[500005],aux[500005];
inline int Partition(int st,int dr)
{
int i=st,j=dr,x=a[(st+dr)>>1];
for (;;)
{
while (a[j]>x) j--;
while (a[i]<x) i++;
if (i<j)
{
swap(a[i],a[j]);
j--;i++;
}
else return j;
}
}
inline void Qsort(int st,int dr)
{
if (st<dr)
{
int mij=Partition(st,dr);
Qsort(st,mij);
Qsort(mij+1,dr);
}
}
int main()
{
int i;
fin>>n;
for (i=1;i<=n;i++) fin>>a[i];
Qsort(1,n);
for (i=1;i<=n;i++) fout<<a[i]<<" ";
return 0;
}