1449: 퀵 정렬
메모리제한:128 MB
시간제한:1.000 S
Judge Style:Text Compare
만든사람:
제출:25
통과:5
문제 설명
퀵 정렬(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