퀵 정렬이란?
- 기준점 (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 |
---|