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

출처/분류