Pagini recente » Cod sursa (job #1849000) | Cod sursa (job #277920) | Cod sursa (job #75561) | Cod sursa (job #372191) | Cod sursa (job #751238)
Cod sursa(job #751238)
#include<fstream>
#include<cstdlib>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int v[500002],n,i;
int pivot (int st,int dr) {
int PIV;
int i=st-1;
int j=dr+1;
PIV=v[st +rand()%(dr-st+1)];
while( 22 ) {
do{
++i;
}while(v[i]<PIV);
do{
--j;
}while(v[j]>PIV);
if(i<j)
swap(v[i],v[j]);
else
return j;
}
return 0;
}
void quick(int st,int dr){
if(st<dr){
int piv=pivot(st,dr);
quick(st,piv);
quick(piv+1,dr);
}
}
int main () {
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
quick(1,n);
for(i=1;i<=n;i++)
g<<v[i]<<" ";
return 0;
}