Pagini recente » Cod sursa (job #273148) | Cod sursa (job #2889571) | Cod sursa (job #1507434) | Cod sursa (job #1887477) | Cod sursa (job #3038523)
#include <fstream>
#include <time.h>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
int n;
int a[500001];
int partitie(int st,int dr)
{
int pivot=a[st+rand()%(dr-st+1)];
int i=st,j=dr;
while(1)
{
while(a[i]<pivot)
i++;
while(a[j]>pivot)
j--;
if(i>=j)
return j;
swap(a[i],a[j]);
i++;
j--;
}
}
void quicksort(int st,int dr)
{
if(st>=dr)
return;
int poz=partitie(st,dr);
quicksort(st,poz);
quicksort(poz+1,dr);
}
int main()
{
cin>>n;
srand(time(NULL));
for(int i=0;i<n;i++)
cin>>a[i];
quicksort(0,n-1);
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
return 0;
}