728x90
반응형
선택 정렬
: 가장 작은 값을 맨 앞으로 이동한 후, 교환하는 방식으로 진행한다. 버블 정렬에서는 인덱스를 이동하면서 지속적으로 교환을 했다면 선택 정렬에서는 가장 작은 데이터를 찾아 한 번만 교환한다. 기준 인덱스가 계속 바뀐다는 점을 알고 있을 것!
"최솟값이 저장된 인덱스를 갱신하는 것"
파이썬으로 구현한 선택정렬
from random import randint
def selection_sort(arr):
for i in range(n-1):
minIndex = i
for j in range(i+1, n):
if arr[minIndex] > arr[j]:
minIndex = j # 최저값의 인덱스 저장
arr[i], arr[minIndex] = arr[minIndex], arr[i]
# 찾아낸 최솟값의 idx와 현재 idx에 있는 값을 swap한다.
return arr
arr = [randint(1, 50) for i in range(8)]
n = len(arr)
print(selection_sort(arr))
728x90
반응형
'Algorithm > Sorting Algorithm' 카테고리의 다른 글
합병 정렬 (Merge Sort) (0) | 2021.07.14 |
---|---|
힙 정렬 (Heap Sort) (0) | 2021.07.14 |
삽입 정렬 (Insertion Sort) (0) | 2021.07.14 |
퀵 정렬 (Quick Sort) (0) | 2021.07.13 |
버블 정렬 (Bubble Sort) (0) | 2021.07.13 |