Pagini recente » Cod sursa (job #483582) | Cod sursa (job #429255) | Cod sursa (job #66216) | Cod sursa (job #2393055) | Cod sursa (job #1932415)
#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,i=0,j=-1,aux;
st=li;
dr=ls;
while(st<dr)
{
if(v[st]>v[dr])
{
swap(v[st],v[dr]);
aux=i;i=-j;j=-aux;
}
st+=i;
dr+=j;
}
return st;
}
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;
}