Pagini recente » Cod sursa (job #224003) | Cod sursa (job #246804) | Cod sursa (job #312490) | Cod sursa (job #1000216) | Cod sursa (job #649299)
Cod sursa(job #649299)
#include <fstream>
#include <ctime>
#include <cstdlib>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
const int N=500001;
int v[N],n,pozstart;
void Quick(int st,int dr){
int i=st+1,j=dr,val,pivot;
if(st==dr)
return;
pivot=rand()%(dr-st) + st;
val=v[pivot];
swap(v[pivot],v[st]);
while(i<=j){
while(v[i]<val)
i++;
while(v[j]>val)
j--;
if(i<j){
swap(v[i],v[j]);
i++;
j--;
}
}
swap(v[st],v[j]);
Quick(st,j-1);
Quick(j+1,dr);
}
int main(){
srand(time(NULL));
int i;
in>>n;
for(i=1;i<=n;++i){
in>>v[i];
}
Quick(1,n);
for(i=1;i<=n;i++){
out<<v[i]<<" ";
}
return 0;
}