#include <stdio.h>
#include <stdlib.h>
void quicksort(int a[], int start, int end) {
int index;
if(start < end) {
index = partition(a, start, end);
quicksort(a, start, index-1);
quicksort(a, index+1, end);
}
else {
return;
}
}
int partition(int a[], int start, int end) {
int pivot = a[end];
int i;
int index = start;
int temp;
for(i=start; i<end; i++) {
if(a[i] < pivot) {
temp = a[i];
a[i] = a[index];
a[index] = temp;
index++;
}
}
temp = a[end];
a[end] = a[index];
a[index] = temp;
return index;
}
int main(int argc, char *argv[]) {
int buf[100001];
int N, C;
scanf("%d", &N);
scanf("%d", &C);
int i=0;
for(i=0; i<N; i++) {
scanf("%d", &buf[i]);
}
quicksort(buf, 0, N-1);
if(C == 0) {
for(i=0; i<N; i++) {
printf("%d\n", buf[i]);
}
}
else {
for(i=N-1; i>=0; i--) {
printf("%d\n", buf[i]);
}
}
return 0;
}
반응형
'e. 자료구조 및 알고리즘' 카테고리의 다른 글
C언어 합병정렬(Merge Sort 2) (0) | 2019.07.12 |
---|---|
C언어 합병정렬(Merge Sort 1) (0) | 2019.07.08 |
C언어 단방향 큐 (Queue) (0) | 2019.06.28 |
C언어 단방향 연결리스트 (LinkedList) (0) | 2019.06.27 |