더북(TheBook)

 

2쉽게 설명한 선택 정렬 알고리즘

 

선택 정렬의 원리를 쉽게 이해할 수 있도록 단순화한 파이썬 프로그램을 먼저 살펴보겠습니다.

 

icon_cakewalk 프로그램 8-1

 

쉽게 설명한 선택 정렬 알고리즘

 

◉ 예제 소스 p08-1-ssort.py

# 쉽게 설명한 선택 정렬

# 입력: 리스트 a

# 출력: 정렬된 새 리스트

# 주어진 리스트에서 최솟값의 위치를 돌려주는 함수

 

def find_min_idx(a):

    n = len(a)

    min_idx = 0

    for i in range(1, n):

        if a[i] < a[min_idx]:

            min_idx = i

    return min_idx

 

def sel_sort(a):

    result = []  # 새 리스트를 만들어 정렬된 값을 저장

    while a:     # 주어진 리스트에 값이 남아 있는 동안 계속

        min_idx = find_min_idx(a)  # 리스트에 남아 있는 값 중 최솟값의 위치

        value = a.pop(min_idx)     # 찾은 최솟값을 빼내어 value에 저장

        result.append(value)       # value를 결과 리스트 끝에 추가

    return result

 

d = [2, 4, 5, 1, 3]

print(sel_sort(d))

 

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