본문 바로가기
Tech Interview/Sorting

[Python]Insertion Sorting

by 부르르 2019. 5. 10.

 

삽입정렬은 자기 위치를 기준으로 앞 인덱스의 값과 비교해서 크기가 작다면 앞에다가 삽입(swap)하는 것이다.

장점은 N의 크기가 작을때 효과적이라는 것

단점은 성능이 좋지 않다는 것이다. 평균 시간복잡도 O(N^2)

 

정리

  • 현재 인덱스를 정렬될 리스트의 끝으로 보고 전체 순회
  • 현재 인덱스 값을 앞 인덱스 값과 비교/스와핑 후 인덱스 업데이트 반복
  • 업데이트 반복 조건은 idx > 0 and arr[idx-1] > arr[idx
def insertion_sort(a):
    n = len(a)
    for i in range(n):
        for j in range(i-1, -1, -1):
            if a[i] < a[j]:
                a[i], a[j] = a[j], a[i]
                i = j
728x90
반응형

'Tech Interview > Sorting' 카테고리의 다른 글

정렬 알고리즘 표 (Python 코드포함)  (0) 2021.09.17
[Python]Selection Sorting  (0) 2019.05.09
[Python]Bubble Sorting  (0) 2019.05.09

댓글