[Algorithm] 선택 정렬 (python)

19·2022년 8월 2일
0

Algorithm

목록 보기
8/28
post-custom-banner

선택 정렬

주어진 데이터 중에서 최소값을 찾고, 찾은 최소값을 맨 앞부터 정렬해가는 방식
정렬을 할 때마다 가장 앞자리를 제외하고 정렬한다.

오름차순 정렬

input = [4, 6, 2, 9, 1]

def selection_sort(array):
    for i in range(len(array)-1):
        min = i
        for j in range(len(array)-i):
            if array[i+j] < array[min]:
                min = (i+j) # 최소값이 위치한 인덱스
        array[i], array[min] = array[min], array[i]
    return array

selection_sort(input)
print(input)

print("정답 = [1, 2, 4, 6, 9] / 현재 풀이 값 = ",selection_sort([4, 6, 2, 9, 1]))
print("정답 = [-1, 3, 9, 17] / 현재 풀이 값 = ",selection_sort([3,-1,17,9]))
print("정답 = [-3, 32, 44, 56, 100] / 현재 풀이 값 = ",selection_sort([100,56,-3,32,44]))
  • 최소값을 찾고, 가장 앞자리와 자리를 바꾼다.
  • 정렬이 수행될 때마다, 가장 앞자리는 제외해가며 정렬을 수행한다 (앞 자리는 정렬이 되어있으니까)

[출력]
[1, 2, 4, 6, 9]
정답 = [1, 2, 4, 6, 9] / 현재 풀이 값 =  [1, 2, 4, 6, 9]
정답 = [-1, 3, 9, 17] / 현재 풀이 값 =  [-1, 3, 9, 17]
정답 = [-3, 32, 44, 56, 100] / 현재 풀이 값 =  [-3, 32, 44, 56, 100]
profile
하나씩 차근차근
post-custom-banner

0개의 댓글