Pagini recente » Cod sursa (job #3002139) | Cod sursa (job #2998750) | Cod sursa (job #479557) | Borderou de evaluare (job #1793903) | Cod sursa (job #796106)
Cod sursa(job #796106)
#include<stdio.h>
#define Nmax 100
#define swap(a,b) a^=b^=a^=b
int A[Nmax], N;
int partition(int A[], int left, int right) {
int pivot = A[(left+right)/2];
int i, j;
i = left - 1;
j = right + 1;
do {
do {
i++;
} while(A[i]<pivot);
do {
j--;
} while(A[j]>pivot);
if(i<j)
swap(A[i],A[j]);
else
return j;
} while(i<j);
}
void quicksort(int A[], int left, int right) {
if(left < right) {
int poz_pivot = partition(A,left,right);
quicksort(A,left,poz_pivot);
quicksort(A,poz_pivot+1,right);
}
}
int main() {
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
int i;
scanf("%d",&N);
for(i=1; i<=N; i++)
scanf("%d",&A[i]);
quicksort(A,1,N);
for(i=1; i<=N; i++)
printf("%d ",A[i]);
return 0;
}