36 lines
709 B
C
36 lines
709 B
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
#define swap(type, a, b) do {type tmp = a; a = b; b = tmp;} while(0)
|
|
|
|
void quicksort(int* arr, int l, int r){
|
|
if(l >= r) return;
|
|
int pivot = arr[l];
|
|
int i = l, j = r;
|
|
while(i < j){
|
|
while(i < j && pivot <= arr[j]) j--;
|
|
while(i < j && pivot >= arr[i]) i++;
|
|
if(i < j) swap(int, arr[i], arr[j]);
|
|
}
|
|
swap(int, arr[l], arr[i]);
|
|
|
|
quicksort(arr, l, i - 1);
|
|
quicksort(arr, i + 1, r);
|
|
}
|
|
|
|
|
|
int main(){
|
|
int n;
|
|
scanf("%d", &n);
|
|
int* arr = (int*)malloc(n * sizeof(int));
|
|
for(int i = 0; i < n; ++i){
|
|
scanf("%d", &arr[i]);
|
|
}
|
|
quicksort(arr, 0, n - 1);
|
|
for(int i = 0; i < n; ++i){
|
|
printf("%d ", arr[i]);
|
|
}
|
|
printf("\n");
|
|
return 0;
|
|
}
|