Pagini recente » Cod sursa (job #2585927) | Cod sursa (job #736763) | Cod sursa (job #2727105) | Cod sursa (job #1261159) | Cod sursa (job #1932408)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int N;
long long v[500001];
int Qsort(int li,int ls)
{
int st,dr,x;
st=li;
dr=ls;
x=v[li];
while(st<dr)
{
while(st<=dr && v[st]<=x) st++;
while(v[dr]>x) dr--;
if(st<dr)
swap(v[st],v[dr]);
}
v[li]=v[dr];
v[dr]=x;
return dr;
}
void divide(int li, int ls)
{
int m=Qsort(li,ls);
if(m-1>li) divide(li,m-1);
if(m+1<ls) divide(m+1,ls);
}
int main()
{
int i;
fin>>N;
for(i=1; i<=N; ++i) fin>>v[i];
divide(1,N);
for(i=1; i<=N; ++i)
fout<<v[i]<<' ';
return 0;
}