Pagini recente » Cod sursa (job #653206) | Cod sursa (job #2731356) | Cod sursa (job #75466) | Cod sursa (job #2476057) | Cod sursa (job #1133181)
#include<cstdio>
#include<algorithm>
using namespace std;
int a[500005],n;
int pozitie(int p, int u)
{
int pivot=a[(p+u)/2];
while(p<u){
while(a[p]<pivot) p++;
while(a[u]>pivot) u--;
swap(a[p],a[u]);
if(a[p]==a[u] && a[p]==pivot) p++;
}
return u;
}
void quick(int p, int u)
{
if(p<u){
int poz=pozitie(p,u);
quick(p,poz-1);
quick(poz+1,u);
}
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
quick(1,n);
for(int i=1;i<=n;i++) printf("%d ", a[i]);
return 0;
}