Pagini recente » Cod sursa (job #452196) | Cod sursa (job #1712568) | Cod sursa (job #2392953) | Cod sursa (job #691018) | Cod sursa (job #1453259)
#include <bits/stdc++.h>
using namespace std;
int n,a[500013],aux[500013],i;
int partitioneazaTab(int st,int dr)
{
int i,Index=st;
int pivotIndex=rand()%(dr-st)+st;
int pivotValue=a[pivotIndex];
swap(a[dr],a[pivotIndex]);
for (i=st;i<dr;++i)
if (a[i]<pivotValue)
{
swap(a[i],a[Index]);
++Index;
}
swap(a[Index],a[dr]);
return Index;
}
void QuickSort(int st,int dr)
{
if (st>=dr) return ;
int p=partitioneazaTab(st,dr);
QuickSort(st,p-1);
QuickSort(p+1,dr);
}
int main(void)
{
ifstream cin("algsort.in");
ofstream cout("algsort.out");
cin>>n;
for (i=1;i<=n;++i) cin>>a[i];
QuickSort(1,n);
for (i=1;i<=n;++i) cout<<a[i]<<" ";
return 0;
}