Pagini recente » Cod sursa (job #480722) | Cod sursa (job #98356) | Cod sursa (job #2607242) | Cod sursa (job #1735865) | Cod sursa (job #600883)
Cod sursa(job #600883)
using namespace std;
#include<iostream>
#include<fstream>
#define nmax 500010
ofstream fout("algsort.out");
int N,a[nmax];
int select(int l,int r)
{
int i,j;
int pivot=a[l];
i=l;
j=r;
while(i!=j)
{
for(;a[i]<pivot ;) i++;
for(;a[j]>pivot ;) j--;
swap(a[i],a[j]);
}
/*for(i=1;i<=N;i++)
{
cout<<a[i]<<" ";
}
cout<<"\n";*/
return j;
}
void qsort(int l,int r)
{
//cout<<l<<" "<<r<<"\n";
if(l==r) return;
int p=select(l,r);
qsort(l,p);
qsort(p+1,r);
}
void cit()
{
ifstream fin("algsort.in");
fin>>N;
int i;
for(i=1;i<=N;i++)
{
fin>>a[i];
}
fin.close();
}
int main()
{
cit();
qsort(1,N);
int i;
for(i=1;i<=N;i++)
{
fout<<a[i]<<" ";
}
fout.close();
return 0;
}