2025-07-30 22:10
Status:
Tags: 알고리즘
선택 정렬
배열에서 가장 큰 혹은 가장 작은 요소를 반복적으로 찾아 배열의 앞 혹은 뒤에 위치시킴
- 시간 복잡도: 모두 O(n^2)
최소값 찾고 0번이랑 교환, 나머지에서 최솟값찾고 1번이랑 교환 … 마지막 2개 비교후 교환 ,끝
def selection_sort(arr):
n = len(arr)
for i in range(n-1):
# 최소값 인덱스 찾기
for j in range(i+1,n):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx],arr[i]
return arr
단순하고 메모리 효율적이지만 너무 느려서 사실상 학습용이거나 교환비용 큰 특수 환경에서 사용