Pagini recente » Cod sursa (job #469234) | Cod sursa (job #1441127) | Borderou de evaluare (job #203721) | Cod sursa (job #139393) | Cod sursa (job #1224160)
#include<fstream>
using namespace std;
const int NMAX=500005;
int n,a[NMAX];
inline int Partition(const int st,const int dr)
{
int i=st,j=dr,x=a[(st+dr)>>1];
for (;;)
{
while (j>=st && a[j]>x) j--;
while (i<=dr && a[i]<x) i++;
if (i<j)
{
swap(a[i],a[j]);
i++;j--;
}
else return j;
}
}
inline void Qsort(const int st,const int dr)
{
if (st<dr)
{
int mij=Partition(st,dr);
Qsort(st,mij);
Qsort(mij+1,dr);
}
}
int main()
{
int i;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
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;
}