반응형
말그대로
삽입
즉,꽂아 넣는
정렬입니다.
-
자신보다 앞의 원소가 큰지 작은지 비교해, 자신의 위치를 찾아
삽입
하는 정렬입니다. -
이미 정렬이 되어있는데
-
삽입을 하면할 수록, 데이터가 하나씩 밀리기 때문에 효율이 떨어집니다.
-
시간 복잡도:
O(n**2)
-
데이터가 이미 정렬되어 있다면
O(n)
이다. 그러나, 데이터가 역순으로 정렬된 상태라면 삽입을 위해 값을 하나씩 뒤로 밀어내는 과정을 아주 많이 반복해야 하므로 느리다.
def insertionSort(arr):
if len(arr)<2:
return arr
for i in range(1,len(arr)):
val = arr[i]
while i>0 and x[i-1] > val:
arr[i] = arr[i-1]
i-=1
arr[i] = val
참고 문헌
https://blockdmask.tistory.com/98
http://ejklike.github.io/2017/03/04/sorting-algorithms-with-python.html
반응형
'알고리즘' 카테고리의 다른 글
백준 3273번 두 수의 합 파이썬 실버4 투 포인터 (0) | 2021.01.07 |
---|---|
퀵 소트 (0) | 2021.01.06 |
백준 1504번 특정한 최단 경로 파이썬 골드 4 다익스트라 알고리즘 wip (0) | 2021.01.04 |
백준 최단경로 17531번 파이썬 골드5 다익스트라 알고리즘( wip ) (0) | 2021.01.04 |
백준 1012번 유기농 배추 bfs 실버2 파이썬 (0) | 2020.12.28 |