Pagini recente » Cod sursa (job #1052693) | Cod sursa (job #3208097) | Cod sursa (job #2323746) | Cod sursa (job #1624045) | Cod sursa (job #828746)
Cod sursa(job #828746)
#include <fstream>
#include <cstdlib>
#include <ctime>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
const int N=550000;
int n,v[N];
void quickSort(int *v,int left,int right){
if(left>=right)
return;
int randpoz=left+rand()%(right-left+1);
swap(v[randpoz],v[left]);
int i,j,pivot;
for(pivot=v[left],i=left+1,j=right;i<j;){
if(v[i]>=pivot){
swap(v[i],v[j]);
--j;
}
else{
++i;
}
}
if(v[i]>pivot){
--i;
}
swap(v[left],v[i]);
quickSort(v,left,i-1);
quickSort(v,i+1,right);
}
int main(){
int i;
in>>n;
for(i=1;i<=n;++i){
in>>v[i];
}
srand(time(NULL));
quickSort(v,1,n);
for(i=1;i<=n;++i){
out<<v[i]<<" ";
}
}