알고리즘 이론/정렬

선택 정렬(selection sort)

bky373 2020. 9. 28. 23:11

1. 주어진 데이터 중에서 최솟값을 찾는다
2. 맨 앞의 데이터와 찾은 최솟값의 위치를 바꾼다
3. 위 과정을 다음 나머지 값에서 반복한다

* 시간복잡도 : O(n^2)

import random

# set up
def selection_sort(data):
    for x in range(len(data)-1):
        lowest = x
        for y in range(lowest+1, len(data)):
            if data[lowest] > data[y]:
                lowest = y
        data[lowest], data[x] = data[x], data[lowest]
    return data

# given
data = random.sample(range(30), 5)  

# when
print(selection_sort(data))

# then
# 1, 7, 12, 15, 23


   - 출처 : fastcampus