Pagini recente » Cod sursa (job #60920) | Cod sursa (job #247847) | Cod sursa (job #2735803) | Cod sursa (job #2419111) | Cod sursa (job #2063370)
#include <iostream>
#include <fstream>
#define MAXN 500001
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int poz(int p,int q,int v[]){
int st=p,dr=q,x=v[p];
while(st<dr){
while(st<dr and v[dr]>=x) {
dr--;
}
v[st]=v[dr];
while(st<dr and v[st]<=x) {
st++;
}
v[dr]=v[st];
}
v[st]=x;
return st;
}
void QS(int p,int q,int v[]){
int m=poz(p,q,v);
if(m-1>p) {
QS(p,m-1,v);
}
if(m+1<q){
QS(m+1,q,v);
}
}
int main(){
int n,v[MAXN];
fin>>n;
for(int i=1;i<=n;i++){
fin>>v[i];
}
QS(1,n,v);
for(int i=1;i<=n;i++){
fout<<v[i]<<' ';
}
return 0;
}