Cod sursa(job #655004)

Utilizator caramete_tCaramete Tiberiu caramete_t Data 31 decembrie 2011 16:29:26
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<fstream>
#include<iostream>
using namespace std; 
long n,i,v[500001];
long split(long ls,long ld)
{long p,q,t;
p=ls+1;
q=ld; 
i=v[ls];
while(q>=p) 
 {while(v[p]<i)
 p++;
 while(v[q]>i)
 q--;
 if(q>p) 
 {t=v[p]; 
 v[p]=v[q];
 v[q]=t;}}
t=v[ls];
v[ls]=v[q]; 
v[q]=t;
return q;}
void quicksort(long ls,long ld)
{long pivot=n/2;
if(ld>ls)
{pivot=split(ls,ld); 
quicksort(ls,pivot-1);
quicksort(pivot+1,ld);}}
int main()
{ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for(i=0;i<n;i++)
{f>>v[i];}
f.close();
quicksort(0,n-1);
for(i=0;i<n;i++)
{g<<v[i]<<" ";}
g.close();}