Python 선택 정렬
리스트를 정렬된 영역과 정렬되지 않은 영역으로 나눕니다.
선택 정렬이란?
리스트를 정렬된 영역과 정렬되지 않은 영역으로 나눕니다.
남은 최솟값을 차례로 올바른 위치에 놓습니다.
언제 사용하나요?
- 알고리즘과 자료 구조를 이해합니다.
- 각 단계와 경계 조건을 확인합니다.
- 실행 시간과 메모리 사용량을 비교합니다.
Python 선택 정렬 시각화
O(n²)재생 또는 한 단계를 눌러 비교와 데이터 이동 과정을 확인하세요.
예제 코드
main.py
def selection_sort(values):
result = values.copy()
for start in range(len(result)):
minimum = start
for index in range(start + 1, len(result)):
if result[index] < result[minimum]:
minimum = index
result[start], result[minimum] = result[minimum], result[start]
return result
print(selection_sort([64, 25, 12, 22, 11]))
예상 출력
[11, 12, 22, 25, 64]
작동 원리
매 순회 최솟값을 찾으므로 시간 O(n²), 추가 메모리 O(1)입니다.
값을 변경하고 Python 설치 없이 CodeUtility 온라인 Python 컴파일러에서 실행하세요.
연습 문제
입력값과 경계 조건을 바꾸고 더 큰 데이터에서도 동작을 확인하세요.
- 빈 입력, 한 요소, 중복값을 시험하세요.
- 각 단계의 상태를 출력하세요.
- 다른 풀이와 성능을 비교하세요.