Pagini recente » Istoria paginii utilizator/ariciuvlad | Cod sursa (job #471980) | Cod sursa (job #163126) | Cod sursa (job #665371) | Cod sursa (job #923016)
Cod sursa(job #923016)
#include <stdio.h>
#include <stdlib.h>
#define NMAX 500000
int A[NMAX],n;
int getPivot(int a,int b)
{
int piv,var,ind;
piv=A[a];
while (a<b)
{
if (A[a]>A[b])
{
var=A[a];
A[a]=A[b];
A[b]=var;
}
if (A[a]==piv)
b--;
else a++;
}
ind=a;
return ind;
}
void quicksort(int a,int b)
{
int ind;
if (a<b)
{
ind=getPivot(a,b);
quicksort(a,ind-1);
quicksort(ind+1,b);
}
}
int main()
{
int i;
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
scanf("%d", &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]);
return 0;
}