컴공생의 다이어리
[알고리즘] 선택 정렬(Selection Sort) 본문
선택 정렬(Selection Sort)
선택 정렬은 버블 정렬(Bubble Sort)과 유사한 알고리즘이다. 해당 순서에 원소를 넣을 위치는 이미 정해져 있고, 어떤 원소를 넣을지 선택하는 알고리즘이다.
정렬 과정
1. 우선, 위치(index)를 선택한다.
2. i+1번째 원소부터 선택한 위치(index)의 값과 비교를 시작
3. 오름차순이므로 현재 선택한 자리에 있는 값보다 순회하고 있는 값이 작다면, 위치(index)를 갱신
4. 2번 반복문이 끝난 뒤에는 min_index에 1번에서 선택한 위치(index)에 들어가야 하는 값의 위치(index)를 갖고 있으므로 서로 교환(swap)
파이썬 코드
def selection_sort(arr):
for i in range(len(arr)-1):
min_index = i
for j in range(i+1,len(arr)):
if(arr[j]<arr[min_index]):
min_index = j
arr[min_index],arr[i] = arr[i],arr[min_index]
return arr
print(selection_sort([5,3,7,9,1]))
# 1, 3, 5, 7, 9
https://gyoogle.dev/blog/algorithm/Selection%20Sort.html
728x90
반응형
'Development > Algorithm & Coding Test' 카테고리의 다른 글
[자료구조] 큐(Queue) (0) | 2021.12.28 |
---|---|
[자료구조] 스택(Stack) (0) | 2021.12.27 |
[알고리즘] 거품 정렬(Bubble Sort) (0) | 2021.09.16 |
[파이썬, Python] 백준 5585번 : 거스름돈 (0) | 2021.08.24 |
[파이썬, Python] 백준 11399번 : ATM (0) | 2021.08.22 |
Comments