Pagini recente » Cod sursa (job #1471506) | Cod sursa (job #1168649) | Cod sursa (job #2269867) | Cod sursa (job #179080) | Cod sursa (job #1849769)
#include<stdio.h>
#include<stdlib.h>
int N, i, x, A[500004];
//--------------------------------------------
void QuickSort(int left, int right){
int i, last, pivot, temp;
if(left>=right){
return;
}
pivot = left + rand() % (right - left + 1);
temp = A[pivot];
A[pivot] = A[left];
A[left] = temp;
last = left;
for(i=left+1; i<=right; i++){
if(A[i] < A[left]){
temp = A[++last];
A[last] = A[i];
A[i] = temp;
}
}
temp = A[left];
A[left] = A[last];
A[last] = temp;
QuickSort(left, last-1);
QuickSort(last+1, right);
}
//--------------------------------------------
int main() {
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]);
}
}
//--------------------------------------------