Cod sursa(job #315471)

Utilizator andrici_cezarAndrici Cezar andrici_cezar Data 15 mai 2009 19:35:44
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<Fstream.h>

long i,n,a[500001];

void part(long st, long dr, long &m){
long p,aux;
long s,d;
p=a[st];
s=st;
d=dr;
while(s<d){
while(s<=dr&&a[s]<=p) s++;
while(d>=st&&a[d]>p) d--;
if(s<d){
aux=a[s];
a[s]=a[d];
a[d]=aux;
}
}
m=d;
aux=a[st];
a[st]=a[m];
a[m]=aux;
}
void quick(long st, long dr){
long m;
if(dr>st){
part(st,dr,m);
if(st<m-1) quick(st,m-1);
if(m+1<dr) quick(m+1,dr);
}
}
int main()
{
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for (i=1;i<=n;i++)
    f>>a[i];
quick(1,n);
for (i=1;i<=n;i++)
    g<<a[i]<<' ';
g<<'\n';
g.close();
return 0;
}