정리 내용
퀵 정렬
- 기준을 설정한 다음 큰 수와 작은 수를 교환한 후 리스트를 반으로 나누는 방식으로 동작.
- 큰 숫자와 작은 수를 교환할 때, 피벗(pivot)을 사용한다.
- 퀵 정렬을 수행하기 전에는 피벗을 어떻게 설정할 것인지를 생각해야 한다.
- 대개 분할(divide) 혹은 파티션(partition)으로 설정한다.
- 시간 복잡도 평균: O(N*logN), 최악의 경우: O(N^2)
- 정렬할 데이터의 개수가 많을수록 더 효율적이다.
퀵 정렬 소스코드
array = [5, 7, 9, 0, 3, 1, 6, 2, 4, 8]
def quick_sort(array):
if len(array) <= 1:
return array
pivot = array[0]
tail = array[1:]
left_side = [x for x in tail if x <= pivot]
right_side = [x for x in tail if x > pivot]
return quick_sort(left_side) + [pivot] + quick_sort(right_side)
print(quick_sort(array))
출처 && 깃허브
이것이 취업을 위한 코딩 테스트다 with python
github