퀵 정렬이란?

  • 기준점 (pivot)을 정해서, 기준점보다 작은 데이터는 왼쪽, 큰 데이터는 오른쪽 으로 모으는 함수를 작성함
  • 각 왼쪽, 오른쪽은 재귀용법을 사용해서 다시 동일 함수를 호출하여 위 작업을 반복한다.
  • 함수는 왼쪽 + 기준점 + 오른쪽을 리턴한다.
import random


def quick_sort(list_data):
    if len(list_data) <= 1:
        return list_data

    pivot = list_data[len(list_data) // 2]

    left = [item for item in list_data if pivot > item]

    right = [item for item in list_data if pivot < item]

    return quick_sort(left) + [pivot] + quick_sort(right)


if __name__ == '__main__':
    data = random.sample(range(1000), 30)

    print("정렬 전 : ", data)
    print()
    print("정렬 후 : ", quick_sort(data))

'알고리즘' 카테고리의 다른 글

merge sort - 병합 정렬  (0) 2021.05.12

+ Recent posts