본문 바로가기

Knowledge/Algorithm

Insertion Sort (삽입정렬)

삽입정렬(Insertion Sort)란?


삽입정렬은 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 부분과 비교하여,

자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다.


배열이 길어질수록 효율이 떨어지지만, 구현이 간단하다는 장점이 있다.

선택정렬이나 버블정렬과 같은  O(n2) 알고리즘에 비교하여 빠르며, 안정 정렬이고 in-place 알고리즘이다.

이미 정렬되어 있는 경우에는 한번씩 밖에 비교를 하지 않기 때문에 시간 복잡도가 O(n)이 된다.


예를 들어 카드 게임을 할 때, 내 손에는 이미 정렬된 카드가 있고, 새로운 카드를 받아 카드 사이의 올바른 자리를

찾아 삽입함으로써 정렬이 유지되게 하는 것이다.









※ 참조 :

https://ko.wikipedia.org/wiki/삽입_정렬

https://m.blog.naver.com/PostView.nhn?blogId=madplay&logNo=220229003111&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F

'Knowledge > Algorithm' 카테고리의 다른 글

크루스칼 알고리즘 (Kruskal's Algorithm)  (0) 2017.10.08
백준 알고리즘 2156번  (0) 2017.09.15
Bubble Sort (버블 정렬)  (0) 2017.07.19
Selection Sort (선택정렬)  (0) 2017.07.07
Doubly Linked List (이중 연결 리스트)  (0) 2017.07.05