◼︎ 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]

     

     

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