컴공생의 다이어리
[알고리즘] 삽입 정렬(Insertion Sort) 본문
삽입 정렬(Insertion Sort)
삽입 정렬은 손안의 카드를 정렬하는 방법(새로운 카드를 기존의 정렬된 카드 사이에 올바른 위치에 삽입)과 유사하다. 또한 삽입 정렬은 선택 정렬과 유사하지만, 좀 더 효율적인 정렬 알고리즘이다.
자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다.
정렬 과정
2번째 위치(index)의 값부터 정렬을 시작한다.
- 해당 인덱스(key 값) 앞에 있는 데이터(B)부터 비교해서 key 값이 더 작으면, B값을 뒤 인덱스로 복사
- 이를 key 값이 더 큰 데이터를 만날 때까지 반복
- 큰 데이터를 만난 위치 바로 뒤에 key 값을 이동
파이썬 코드
def insertion_sort(arr):
n = len(arr)
for i in range(1, n):
for j in range(i, 0, -1):
if arr[j - 1] > arr[j]:
arr[j - 1], arr[j] = arr[j], arr[j - 1]
else:
break
return arr
혹은
def insertion_sort(arr):
n = len(arr)
for i in range(1, n):
j = i
while j > 0 and arr[j - 1] > arr[j]:
arr[j - 1], arr[j] = arr[j], arr[j - 1]
j -= 1
return arr
https://gmlwjd9405.github.io/2018/05/06/algorithm-insertion-sort.html
[알고리즘] 삽입 정렬(insertion sort)이란 - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
[정렬 알고리즘] 01 삽입 정렬(Insertion Sort)이론 및 구현
1. 삽입 정렬 개념 손안의 카드를 정렬하는 방법과 유사(새로운 카드를 기존의 정렬된 카드 사이에 올바른 위치에 삽입) 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과
rninche01.tistory.com
https://gyoogle.dev/blog/algorithm/Insertion%20Sort.html
삽입 정렬(Insertion Sort) | 👨🏻💻 Tech Interview
삽입 정렬(Insertion Sort) Goal Insertion Sort에 대해 설명할 수 있다. Insertion Sort 과정에 대해 설명할 수 있다. Insertion Sort을 구현할 수 있다. Insertion Sort의 시간복잡도와 공간복잡도를 계산할 수 있다. In
gyoogle.dev
https://www.fun-coding.org/Chapter12-insertionsorting.html
파이썬과 컴퓨터 사이언스(기본 알고리즘): 삽입 정렬 (insertion sort) - 잔재미코딩
프로그래밍 연습 데이터가 네개 일때 동작하는 선택 정렬 알고리즘을 함수로 만들어보세요 프로그래밍 근육을 키우는 방법
www.fun-coding.org
'Development > Algorithm & Coding Test' 카테고리의 다른 글
[알고리즘] 병합(합병) 정렬(Merge Sort) (0) | 2022.04.08 |
---|---|
[알고리즘] 퀵 정렬(Quick Sort) (0) | 2022.04.07 |
[프로그래머스] DATETIME에서 DATE로 형 변환 - MySQL (0) | 2022.04.02 |
[프로그래머스] 오랜 기간 보호한 동물(2) - MySQL (0) | 2022.04.01 |
[프로그래머스] 중성화 여부 파악하기 - MySQL (0) | 2022.03.31 |