-
[Python] 선택 정렬(selection sort)Algorithm 2020. 3. 18. 16:14
선택 정렬이란?
- 정렬되지 않은 전체 자료 중에서 해당 위치에 맞는 자료를 선택하여 위치를 교환하는 정렬 방식
- 정렬되지 않은 데이터들에 대해 가장 작은 데이터를 찾아 가장 앞의 데이터와 교환해나가는 방식(오름차순일 경우)
과정
- 다음과 같은 순서를 반복하며 정렬하는 알고리즘
1. 주어진 데이터 중 최소값을 찾는다.
2. 해당 최소값을 데이터 맨 챂에 위치한 값과 교체한다.
3. 맨 앞의 위치를 뺀 나머지 데이터를 동일한 방법으로 반복한다.
selection sort 특징
- 자료 이동 횟수가 미리 결정된다.
- 값이 같은 레코드가 있는 경우에 상대적인 위치가 변경될 수 있다.
- 코드가 간단하고 적은양의 데이터에서 효과적이다.
- 시간복잡도는 O(n^2)이다.
Python Code
def selection_sort(data): for stand in range(len(data) - 1): lowest = stand for index in range(stand+1, len(data)): if data[lowest] > data[index]: lowest = index data[lowest], data[stand] = data[stand], data[lowest] return data
selection sort 확인하기
import random data_list = random.sample(range(100), 10) selection_sort(data_list) print(data_list)
Reference
'Algorithm' 카테고리의 다른 글
LRU(Least Recently Used) 알고리즘 (0) 2020.10.07 [Python] 병합 정렬(merge sort) (0) 2020.05.15 [Python] 백준 1302번 베스트셀러 (0) 2020.05.14 [Python] 삽입 정렬(Insertion sort) (0) 2020.03.26 [Python] 버블 정렬(Buble sort) (0) 2020.03.15