더북(TheBook)

◼︎ 8-2 내림차순 선택 정렬

오름차순 선택 정렬에서 최솟값 대신 최댓값을 선택하면 내림차순 정렬(큰 수에서 작은 수로 나열)이 됩니다.

다음과 같이 비교 부등호 방향을 작다(< )에서 크다( >)로 바꾸기만 해도 내림차순 정렬 프로그램이 됩니다. 여기서는 변수 이름의 의미를 맞추려고 변수 min_idxmax_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]

 

 

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.