◼︎ 8-2 내림차순 선택 정렬
오름차순 선택 정렬에서 최솟값 대신 최댓값을 선택하면 내림차순 정렬(큰 수에서 작은 수로 나열)이 됩니다.
다음과 같이 비교 부등호 방향을 작다(< )에서 크다( >)로 바꾸기만 해도 내림차순 정렬 프로그램이 됩니다. 여기서는 변수 이름의 의미를 맞추려고 변수 min_idx를 max_idx로 바꾸었습니다.
◉ 예제 소스 e08-2-ssort.py
# 내림차순 선택 정렬
# 입력: 리스트 a
# 출력: 없음(입력으로 주어진 a가 정렬됨)
def sel_sort(a):
n = len(a)
for i in range(0, n - 1):
max_idx = i # 최솟값(min) 대신 최댓값(max)을 찾아야 함
for j in range(i + 1, n):
if a[j] > a[max_idx]: # 부등호 방향 뒤집기
max_idx = j
a[i], a[max_idx] = a[max_idx], a[i]
d = [2, 4, 5, 1, 3]
sel_sort(d)
print(d)
◉ 실행 결과
[5, 4, 3, 2, 1]