차밍이
[알고리즘] 패스트캠퍼스 알고리즘 학습 - 선택 정렬(Selection Sort) 본문
반응형
1. 선택 정렬 이란?
- 주어진 데이터 중, 최솟값을 찾는다.
- 해당 최소값을 가장 맨 앞의 데이터의 위차와 교체한다.
- 맨 앞의 최소값 데이터를 제외한 나머지 데이터를 대상으로 동일한 방법을 반복한다.
2. 예제 코드
import random
data_list = random.sample(range(100), 10)
print(data_list, end="\n\n")
for i in range(len(data_list)-1):
index = i
for j in range(len(data_list)-i):
if data_list[index] > data_list[j+i]:
index = j+i
data_list[index], data_list[i] = data_list[i], data_list[index]
print(data_list)
>>>>
[43, 58, 50, 82, 0, 11, 16, 80, 79, 6]
[0, 58, 50, 82, 43, 11, 16, 80, 79, 6]
[0, 6, 50, 82, 43, 11, 16, 80, 79, 58]
[0, 6, 11, 82, 43, 50, 16, 80, 79, 58]
[0, 6, 11, 16, 43, 50, 82, 80, 79, 58]
[0, 6, 11, 16, 43, 50, 82, 80, 79, 58]
[0, 6, 11, 16, 43, 50, 82, 80, 79, 58]
[0, 6, 11, 16, 43, 50, 58, 80, 79, 82]
[0, 6, 11, 16, 43, 50, 58, 79, 80, 82]
[0, 6, 11, 16, 43, 50, 58, 79, 80, 82]
순차적으로 데이터를 정렬해나가는 모습을 볼 수 있다.
가장 작은 값을 앞쪽에 위치할 수 있도록 바꾸어주고 있다.
가장 작은 값이 들어있는 부분을 index
라는 값으로 찾다가 마지막에 해당 위치와 바꿔주는 방식으로 진행된다.
반응형
'파이썬 > 알고리즘' 카테고리의 다른 글
[파이썬] 백준 11047번 : 동전 0 - 알고리즘 문제풀이 (0) | 2021.06.26 |
---|---|
[알고리즘] 패스트캠퍼스 알고리즘 학습 - 병합 정렬(Merge Sort) (0) | 2021.04.12 |
[알고리즘] 패스트캠퍼스 알고리즘 학습 - 퀵 정렬(Quick Sort) (0) | 2021.04.07 |
[알고리즘] 패스트캠퍼스 알고리즘 학습 - 동적 계획법과 분할 정복 with 피보나치 (0) | 2021.04.06 |
[알고리즘] 패스트캠퍼스 알고리즘 학습 - 버블정렬 (0) | 2021.04.01 |
[알고리즘] 패스트캠퍼스 알고리즘 학습 - 삽입 정렬(Insertion Sort) (0) | 2021.03.31 |
[알고리즘] 패스트캠퍼스 알고리즘 학습 정리 - 더블 링크드 리스트(Double Linked List) (0) | 2021.02.09 |
[알고리즘] 패스트캠퍼스 알고리즘 학습 정리 - 링크드 리스트(Linked List) (0) | 2021.02.08 |
관련된 글 보기
Comments