퀵정렬
- 기준점(pivot이라고 부름)을 정해서 기준점보다 작은 데이터는 왼쪽, 큰 데이터는 오른쪽으로 모으는 함수를 작성한다.
- 왼쪽 오른쪽으로 나눈 데이터들을 동일한 함수를 호출하여 나누는 작업을 반복한다.
- 작 작업을 통해 리턴받은 데이터를 결합하면 정렬된 데이터를 얻을 수 있다.
구현
def qsort(array):
    if len(array) <= 1:
        return array
    
    pivot = array[0]
    left = []
    right = []
    for idx in range(1, len(array)):
        if array[idx] > pivot:
            right.append(array[idx])
        else:
            left.append(array[idx])
    
    return qsort(left) + [pivot] + qsort(right)
if __name__ == "__main__":
    result = qsort([4, 7, 134, 53, 12, 678, 432, 1, 8])
    print(result)'Computer Science > Data Structure & Algorithm' 카테고리의 다른 글
| 그래프 (0) | 2022.05.30 | 
|---|---|
| 병합정렬 (Merge sort) (0) | 2022.04.17 | 
| 동적계획법(Dynamic Programming)과 분할정복 (Divide and Conquer) (0) | 2022.04.10 | 
| 힙 (Heap) (0) | 2022.03.27 | 
| 이진탐색트리 (Binary Search Tree, BST) (0) | 2022.03.27 |