반응형
파이썬으로 삽입정렬 구현하기 :: insertion sort in python
1. 삽입정렬이란? What is a insertion sort?
삽입 정렬은 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다.
https://ko.wikipedia.org/wiki/%EC%82%BD%EC%9E%85_%EC%A0%95%EB%A0%AC
2. insertion sort in python
이를 python3에서 구현하면 다음과 같다.
1 2 3 4 5 6 7 8 9 | # insertion sort def insert(v) : for i in range(1,len(v)) : j=i-1 while(j>=0 and v[i]<v[j]): j-=1 v.insert((j + 1), v[i]) del v[i+1] return v | cs |
2번째 요소부터 앞에 요소들과 비교하여 본인의 자리를 찾아간다.
* 삽입 정렬(insertion sort) 예시
> insert([7, 6, 1, 8, 5, 3, 9, 4])
[1, 3, 4, 5, 6, 7, 8, 9]
v[i] : 정렬의 대상이 되는 요소
j : v[i]의 적절한 위치
i = 1 :
j = 0 : 6 7 1 8 5 3 9 4
i = 2 :
j = 0 : 1 6 7 8 5 3 9 4
i = 3 :
j = 3 : 1 6 7 8 5 3 9 4
i = 4 :
j = 1 : 1 5 6 7 8 3 9 4
i = 5 :
j = 1 : 1 3 5 6 7 8 9 4
i = 6 :
j = 6 : 1 3 5 6 7 8 9 4
i = 7 :
j = 2 : 1 3 4 5 6 7 8 9
반응형
'코딩테스트 연습 > Python' 카테고리의 다른 글
[알고리즘] 파이썬으로 힙 정렬 구현하기 :: heap sort in python (2) | 2019.11.10 |
---|---|
[알고리즘] 파이썬으로 병합 정렬 구현하기 :: merge sort in python :: bottom up 방식 (0) | 2019.11.08 |
[알고리즘] 파이썬으로 거품정렬 구현하기 :: bubble sort in python (0) | 2019.11.06 |
[알고리즘] 파이썬으로 sort하기 :: bubble sort(버블정렬), insert sort(삽입정렬), merge sort(병합정렬), heap sort(힙정렬) (0) | 2019.11.05 |
[python] 소수 찾기 - 에라토스테네스의 체 (0) | 2019.09.25 |