자료구조

[파이썬 자료구조] Sorting: 선택정렬

j9m 2020. 6. 10. 17:02
반응형

선택정렬(Selection sort): 배열에서 아직 정렬되지 않은 부분의 원소들 중에서 최솟값을 선택하여 정렬된 부분의 바로 오른쪽 원소와 교환하는 정렬 알고리즘

1단계. 전체길이가 m일때 인덱스 0 ~ m-1 중에서 가장 작은 값을 찾아서 인덱스0의 값과 교환

2단계. 인덱스 1~m-1 중에서 가장 작은 값과 인덱스 1의 값을 교환

3단계. 이과정을 계속 반복하면 정렬된 리스트를 얻을 수 있다. 오름차순,내림차순 둘다 가능  

선택정렬 파이썬 코드

1
2
3
4
5
6
7
def selection_sort(L):
for i in range(0len(L)):
    min_index = i
    for j in range(i, len(L)):
        if L[min_index] > L[j]:
            min_index = j
    L[i], L[min_index] = L[min_index], L[i]
cs

코드에 대해서 간단히 설명하면 리스트를 인자로 받는 함수입니다.

1. 변수 min_index를 인덱스0으로 초기화함 (코딩세계에서 인덱스 0은 첫번째 인자를 뜻함) 

2. 인덱스0의 값과 나머지 값을 하나씩 비교해 보면서 최솟값을 찾습니다.

3. 7번줄에서 인덱스0의 값과 최솟값을 맞교환합니다. 그러면 인덱스0이 최솟값이죠

4. 이과정을 계속 반복하면 오름차순 정렬이 됩니다.

 

 

반응형