Python 퀵 정렬
값을 피벗보다 작은 그룹, 같은 그룹, 큰 그룹으로 나눕니다.
퀵 정렬이란?
값을 피벗보다 작은 그룹, 같은 그룹, 큰 그룹으로 나눕니다.
피벗을 기준으로 값을 분할합니다.
언제 사용하나요?
- 알고리즘과 자료 구조를 이해합니다.
- 각 단계와 경계 조건을 확인합니다.
- 실행 시간과 메모리 사용량을 비교합니다.
Python 퀵 정렬 시각화
O(n log n)재생 또는 한 단계를 눌러 비교와 데이터 이동 과정을 확인하세요.
예제 코드
main.py
def quick_sort(values):
if len(values) <= 1:
return values
pivot = values[len(values) // 2]
lower = [value for value in values if value < pivot]
equal = [value for value in values if value == pivot]
higher = [value for value in values if value > pivot]
return quick_sort(lower) + equal + quick_sort(higher)
print(quick_sort([10, 7, 8, 9, 1, 5]))
예상 출력
[1, 5, 7, 8, 9, 10]
작동 원리
평균 시간 O(n log n)이지만 나쁜 피벗에서는 O(n²)이 됩니다.
값을 변경하고 Python 설치 없이 CodeUtility 온라인 Python 컴파일러에서 실행하세요.
연습 문제
입력값과 경계 조건을 바꾸고 더 큰 데이터에서도 동작을 확인하세요.
- 빈 입력, 한 요소, 중복값을 시험하세요.
- 각 단계의 상태를 출력하세요.
- 다른 풀이와 성능을 비교하세요.