Computer Science/자료구조

[5.21] 06-3 단순 선택 정렬 straight selection sort

토마토. 2021. 5. 21. 18:05

단순 선택 정렬 알아보기

아직 정렬하지 않은 범위에서 값이 가장 작은 원소를 선택하고

for i in range(n-1)

  min

  a[i]와 a[min]을 교환

아직 정렬하지 않은 부분의 맨 앞 원소와 교환하는 작업을 반복한다. 

왕 풀었다

from typing import MutableSequence

def selection_sort(a:MutableSequence) -> None:
    n = len(a)
    min = 0
    for i in range(n-1):
        for j in range(i, n):
            if a[j] <= a[min]:
                min = j
        a[i], a[min] = a[min], a[i]
    return a

a = [4, 5, 2, 1, 3]
print(selection_sort(a))

예제 코드

from typing import MutableSequence

def selection_sort(a:MutableSequence) -> None:
    n = len(a)
    for i in range(n-1):
        min = i
        for j in range(i+1, n):
            if a[j] <= a[min]:
                min = j
        a[i], a[min] = a[min], a[i]
    return a

a = [4, 5, 2, 1, 3]
print(selection_sort(a))

'Computer Science > 자료구조' 카테고리의 다른 글

[5.23] 06-5 셸 정렬  (0) 2021.05.23
[5.22] 06-4 단순 삽입 정렬  (0) 2021.05.22
[5.20] 06-2 버블 정렬  (0) 2021.05.20
[5.18] 06-1 정렬 알고리즘  (0) 2021.05.18
[5.17] 03-4 해시법 복습 (재도전)  (0) 2021.05.17