본문 바로가기
알고리즘 이론/정렬

선택 정렬(selection sort)

by bky373 2020. 9. 28.

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

'알고리즘 이론 > 정렬' 카테고리의 다른 글

합병/병합 정렬(merge sort)  (0) 2020.10.01
퀵 정렬(quick sort)  (0) 2020.09.29
삽입 정렬(insertion sort)  (0) 2020.09.28
버블 정렬(bubble sort)  (0) 2020.09.13

댓글