반응형
정렬 알고리즘
정렬(sorting)이란 데이터를 특정한 기준에 따라 순서대로 나열하는 것
일반적으로 문제 상황에 따라서 적절한 정렬 알고리즘이 공식처럼 사용
선택 정렬
처리되지 않은 데이터 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸는 것을 반복
위와 같은 방식으로 첫 번째 인덱스, 두 번째 인덱스,....으로 계속해서 데이터와 바꾸는 것을 반복하여 정렬한다.
선택 정렬 구현
array = [7,5,9,0,3,1,6,2,4,8]
for i in range(len(array)):
min_index = i # 가장 작은 원소의 인덱스
for j in range(i + 1, len(array)):
if array[min_index] > array[j]:
min_index = j
array[i], array[min_index] = array[min_index], array[i] # 스와프
print(array)
=> [01,2,3,4,5,6,7,8,9]
선택 정렬의 시간 복잡도
선택 정렬은 N번만큼 가장 작은 수를 찾아서 맨 앞으로 보내야 한다.
빅오 표기법에 따라서 O(N 2(제곱)) 이라고 작성한다.
www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC
이 자료는 동빈 나 님의 이코 테 유튜브 영상을 보고 정리한 자료입니다.
반응형
'Algorithm' 카테고리의 다른 글
[Algorithm] 23강 : 퀵(quick) 정렬의 정의와 구현코드 (0) | 2020.11.09 |
---|---|
[Algorithm] 22강 : 삽입 정렬의 정의와 구현코드 (0) | 2020.11.06 |
[Algorithm] 20강 : DFS & BFS 기초 문제 풀이 (1) | 2020.11.04 |
[Algorithm] 19강 : BFS(너비 우선 탐색) 알고리즘 정의와 예제 (0) | 2020.11.03 |
[Algorithm] 18강 : DFS(깊이 우선 탐색) 알고리즘 정의와 예제 (0) | 2020.11.02 |