1449: 퀵 정렬
문제 설명
퀵 정렬(Quick Sort)은 피벗(pivot)이라 불리는 특정 원소를 기준으로 주어진 원소들을 두 부분으로 나눈 뒤 각 부분을 정렬하는 방식'이다.
이번 문제는 미리 작성된 코드를 보고 빈 칸에 들어갈 코드를 작성하는 것이다.
이 프로그램은 퀵 정렬을 구현한 것이며, 실행 결과는 오름차순으로 정렬된다.
빈 칸에 들어갈 코드만 작성해서 제출하시오.
► 정렬 방식에 대한 자세한 내용은 학습자료를 참고하기 바란다.
[미리 작성된 프로그램] - C/C++로 제출하는 경우에만 추가됩니다.
#include <stdio.h>
#define MAX_SIZE 100
#define SWAP(x, y, t) ( (t)=(x), (x)=(y), (y)=(t) )
void quick_sort(int data[], int left, int right){
if(left >= right) return;
int pivot = left;
int low = pivot + 1;
int high = right;
int temp;
while(low <= high){
// 이 부분에 들어가야 될 코드를 작성하여 제출
}
quick_sort(data, left, high - 1);
quick_sort(data, high + 1, right);
}
int main(void){
int arr[MAX_SIZE] = {};
int n;
scanf("%d", &n);
for(int i=0; i<n; i++){
scanf("%d", &arr[i]);
}
quick_sort(arr, 0, n-1);
for(int i=0; i<n; i++){
printf("%d ", arr[i]);
}
printf("\n");
}
입력 설명
출력 설명
입력 예시 Copy
5
1
3
2
5
4
출력 예시 Copy
1
2
3
4
5