
배열(array) / 리스트(list)에서 최소 값 을 선택하여 맨 앞부터 정렬시키는 방법
[5, 1, 3, 7, 2, 9]의 배열

1회전
최솟값 : 1
모든 배열을 확인하여 최솟값 1을 맨 앞으로 이동
2회전
최솟값 : 2
두 번째 부터 마지막까지 배열을 확인하여 최솟값 3을 두 번째 자리로 이동
3회전
최솟값 : 3
세 번째 부터 마지막까지 배열을 확인하여 최솟값 4을 세 번째 자리로 이동
...
최종
1 2 3 5 7 9 로 정렬을 완성
# Selection Sort
def selection_sort(arr):
for i in range(len(arr)):
min_index = i
for j in range(i + 1, len(arr)):
if arr[j] < arr[min_index]:
min_index = j
arr[i], arr[min_index] = arr[min_index], arr[i]
return arr
# Selection Sort - pseudo code
for i ← 0 to n-2 do{
min ← i
for j ← i+1 to n-1 do{
# list : A[i+1] ... A[n-1]
if(A[j] < A[min]) min ← j
}
swap(A[i], A[min])
}
장점
단점
