Pagini recente » Cod sursa (job #2369115) | Cod sursa (job #2454366) | Cod sursa (job #1425420) | Cod sursa (job #2564597) | Cod sursa (job #2540421)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("algsort.in");
ofstream fout("algsort.out");
int v[500005],n,i;
int pivot(int st,int dr){
int p=st+(rand()*rand())%(dr-st);
swap(v[p],v[dr]);
int j=st-1;
for(int i=st;i<dr;i++){
if(v[i]<v[dr]){
swap(v[i],v[++j]);
}
}
swap(v[j+1],v[dr]);
return j+1;
}
void qsort(int st,int dr){
if(st<dr){
int p=pivot(st,dr);
qsort(st,p-1);
qsort(p+1,dr);
}
}
int main()
{
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
qsort(1,n);
for(i=1;i<=n;i++)
fout<<v[i]<<" ";
}