Pagini recente » Cod sursa (job #2827916) | Cod sursa (job #376106) | Cod sursa (job #2400910) | Cod sursa (job #902934) | Cod sursa (job #377065)
Cod sursa(job #377065)
#include<fstream>
#define dmax 500003
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
long long n,v[dmax];
int divide(long long p,long long q)
{ long long st,dr,x;
st=p;
dr=q;
x=v[p];
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 sort(long long p,long long q)
{ long long m;
m=divide(p,q);
if(m-1>p)
sort(p,m-1);
if(m+1<q)
sort(m+1,q);
}
int main()
{ long long i;
in>>n;
for(i=0;i<n;i++)
in>>v[i];
in.close();
sort(0,n-1);
for(i=0;i<n;i++)
out<<v[i]<<" ";
out.close();
return 0;
}