Pagini recente » Cod sursa (job #2422135) | Cod sursa (job #2639883) | Cod sursa (job #2837370) | Cod sursa (job #380602) | Cod sursa (job #1019169)
//quick sort
#include<fstream>
#include<cstdlib>
#define dim 500007
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[dim],n,i;
int pivotare(int st,int dr){
int i,j,piv;
i=st-1;
j=dr+1;
piv=a[st+rand()%(dr-st+1)];
while(3543231){
do{
++i;
}while(a[i]<piv);
do{
--j;
}while(a[j]>piv);
if(i<j)
swap(a[i],a[j]);
else
return j;
}
return 0;
}
void quick(int st,int dr){
if(st<dr){
int pivot=pivotare(st,dr);
quick(st,pivot);
quick(pivot+1,dr);
}
}
int main () {
f>>n;
for(i=1;i<=n;++i)
f>>a[i];
quick(1,n);
for(i=1;i<=n;++i)
g<<a[i]<<" ";
return 0;
}