Pagini recente » Cod sursa (job #1483267) | Cod sursa (job #312101) | Cod sursa (job #2520229) | Cod sursa (job #850716) | Cod sursa (job #1243909)
#include <iostream>
#include <algorithm>
#include <stdlib.h>
#include <time.h>
using namespace std;
int a[500002];
int getPivot(int l, int r)
{
int p=rand()%(r-l+1)+l;
return p;
}
void quicksort(int l, int r)
{
if(r-l<1) return;
int pind=getPivot(l,r);
int p=a[pind];
int i=l, j=r;
while(i<=j)
{
while(a[i]<p)i++;
while(a[j]>p)j--;
if(i<=j)
{
swap(a[i],a[j]);
i++;
j--;
}
}
quicksort(l,i-1);
quicksort(i,r);
}
int main()
{
srand(time(NULL));
int i,n;
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
cin>>n;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
quicksort(0,n-1);
for(i=0;i<n;i++)
printf("%d ",a[i]);
}