Pagini recente » Cod sursa (job #1175626) | Cod sursa (job #1656811) | Cod sursa (job #1970061) | Cod sursa (job #353335) | Cod sursa (job #1934691)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int N;
int v[500001];
int Qsort(int li,int ls)
{
int st=li,dr=ls;
int st,dr,x;
st=li;
dr=ls;
x=v[li];
while(st<dr)
{
while(st<dr && v[dr]>=x) dr--;
v[st]=v[dr];
while(st<dr && v[st]<=x) st++;
v[dr]=v[st];
}
v[st]=x;
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;
}