🛴

선택정렬 알고리즘(selection sort)

선택 정렬(Selection sort)

학생때 알고리즘 시간에 공부했던 내용이지만, 최근에 정보처리기사 공부, 알고리즘 공부를 하면서 겸사 겸사 되짚어 보았다.

이론

주어진 배열을 순회하면서 선택된 항목과 그 다음 항목들 중에 최소 값을 찾아서 서로 교환해준다. 아래의 그림을 보면서 이해하면 느낌이 올 것이다. 노란색은 선택된 항목, 주황색은 최소 값이다.

png

소스코드

역시 개발자는 소스코드로 확인하는 편이 이해가 빠르다.

한 라인에 배열을 “3 5 1 2 4” 형식으로 공백구분으로 받은 후 배열을 순회하면서 최소 값의 index를 구하고 선택된 항목과 교환하는 내용이다.

arr = list(map(int, input().split()))

for i in range(len(arr)):
    min_idx = i
    for j in range(i + 1, len(arr)):
        if arr[min_idx] > arr[j]:
            min_idx = j

    arr[i], arr[min_idx] = arr[min_idx], arr[i]

print(' '.join(map(str,arr)))
yoon.homme
yoon.homme

기술과 커뮤니케이션의 힘이 세상을 바꾼다고 믿습니다.

편리한 세상으로 나아가기 위해 고민하고 개발합니다.