본문 바로가기

자료구조 & 알고리즘/Sort

삽입 정렬(insertion sort)

삽입 정렬

삽입 정렬은 key값을 배열의 알맞는 위치로 삽입하여 정렬하는 방식입니다.

시간복잡도

- o(n^2)

계획세우기

1. 시작 index는 1부터 시작하여 앞 index들과 비교를한다.

2. key값이 앞 index들보다 크면 그대로 고정

3. key값이 작으면 array의 value값을 뒤로 보낸다.

4. 저장된 key값을 맞는 위치에 넣는다.

그림으로 이해하기

파이썬으로 구현

arr = [8, 5, 6, 2, 4]

def insertion_sort(list):
	n = len(arr)
    for i in range(1, n):
    	key_value = list[i]
        # key값 뒤값 index
        j = i -1 
        while j >= 0 and list[j] > key_value :
        	list[j+1] = list[j]
        	j -= 1
        list[j+1] = key_value
        
	return list

print(insertion_sort(arr))

정리

기본 정렬이지만 시간 복잡도가 오래걸리기 때문에 역시 개념, 구현 위주로 이해하고 넘어가면 된다.

'자료구조 & 알고리즘 > Sort' 카테고리의 다른 글

퀵 정렬(quick sort)  (0) 2020.08.30
병합 정렬(merge sort)  (0) 2020.08.03
선택 정렬(selection sort)  (0) 2020.07.28
버블 정렬(bubble sort)  (0) 2019.11.13