Pagini recente » Cod sursa (job #20100) | Profil SeekHunt1334 | Cod sursa (job #520073) | Problema satisfiabilităţii formulelor logice de ordinul doi | Cod sursa (job #1574145)
#include <bits/stdc++.h>
#define N 500100
using namespace std;
int n;
int tab[N];
void quicksort(int *a,int start,int end)
{
if(start+1>=end)
return;
int pivot = rand()%(end-start) +start;
int i = start;
int j = end-1;
swap(a[pivot],a[j]);
pivot = j;
while(i<j)
{
if(a[i]>a[pivot])
{
j--;
swap(a[j],a[i]);
}
else
{
i++;
}
}
swap(a[j],a[pivot]);
quicksort(a,start,j);
quicksort(a,j+1,end);
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
srand(time(NULL));
cin>>n;
for(int i=0;i<n;++i)
cin>>tab[i];
quicksort(tab,0,n);
for(int i=0;i<n;++i)
cout<<tab[i]<<" ";
return 0;
}