Cod sursa(job #444077)
Utilizator | Gavrila Iulian nopiulian | Data | 19 aprilie 2010 12:26:01 |
---|---|---|---|
Problema | Sortare prin comparare | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Tema 10D #1 | Marime | 0.64 kb |
#include<fstream.h>
ifstream f("algsort.in");
ofstream g("algsort.out");
int n,i,v[500001];
int qs(int in,int sf){
int i=in,j=sf,m=v[(in+sf)/2],x;
do{
while(v[i]<m) ++i;
while(v[j]>m) --j;
if(i<=j){
x=v[i];
v[i]=v[j];
v[j]=x;
++i;--j;
}
}while(i<=j);
if(in<j) qs(in,j);
if(i<sf) qs(i,sf);
}
int main(){
f>>n;
for(i=1;i<=n;++i) f>>v[i];
qs(1,n);
for(i=1;i<=n;++i) g<<v[i]<<' ';
g<<'\n';
g.close();
return 0;
}