Pagini recente » Cod sursa (job #1438414) | Cod sursa (job #761345) | Cod sursa (job #344560) | Cod sursa (job #2344844) | Cod sursa (job #384427)
Cod sursa(job #384427)
#include<stdio.h>
#include<stdlib.h>
#define SIZE 500001
int n, x[SIZE];
int partition(int l, int r)
{
int p=x[l];
int i=l-1, j=r+1;
while(1)
{
do i++; while(x[i]<p);
do j--; while(x[j]>p);
if (i<j)
{
int temp = x[i];
x[i] = x[j];
x[j] = temp;
}
else return j;
}
}
void quicksort(int l, int r)
{
if (l<r){
int q=partition(l,r);
quicksort(l,q);
quicksort(q+1,r);
} }
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(int i=1; i<=n; scanf("%d",&x[i++]));
fclose(stdin);
quicksort(1,n);
for(int j=1; j<=n; printf("%d ",x[j++]));
fclose(stdout);
return 0;
}