Pagini recente » Cod sursa (job #2119106) | Cod sursa (job #3222504) | Istoria paginii runda/cateva_probleme_de_incalzire/clasament | Cod sursa (job #572927) | Cod sursa (job #393911)
Cod sursa(job #393911)
#include<iostream>
#include<cstdlib>
using namespace std;
int a[500009];
void swap(int& a, int& b){
int aux;
aux=a;a=b;b=aux;
}
int partitie(int st, int dr){
int p, pos, k, i;
srand(time(NULL));
p=((rand()%(dr-st+1))+st);
k=a[p]; pos=st;
swap(a[pos], a[p]);
for(i=st+1;i<=dr;i++)
if(a[i]<=k)
swap(a[++pos],a[i]);
swap(a[pos],a[st]);
return pos;
}
void quisort(int st, int dr){
if(st<dr){
int m=partitie(st, dr);
quisort(st, m-1);
quisort(m+1, dr);
}
}
int main(){
int n, i;
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
quisort(0, n-1);
for(i=0;i<n;i++)
cout<<a[i]<<' ';
cout<<'\n';
return 0;
}