ABOUT ME

-

  • 패스트 캠퍼스 챌린지 30일차 - 알고리즘 삽입정렬
    카테고리 없음 2021. 10. 5. 18:52

    목차

    1. 삽입정렬
    2. 삽입정렬 구현 단계
    3. 알고리즘 분석

    1.삽입정렬

    • 삽입 정렬은 두 번째 인덱스부터 시작
    • 해당 인덱스(key 값) 앞에 있는 데이터(B)부터 비교해서 key 값이 더 작으면, B값을 뒤 인덱스로 복사
    • 이를 key 값이 더 큰 데이터를 만날때까지 반복, 그리고 큰 데이터를 만난 위치 바로 뒤에 key 값을 이동

    출처: https://commons.wikimedia.org/wiki/File:Insertion-sort-example.gif


    2.삽입정렬 구현단계

    • 데이터가 네 개 일때 (데이터 갯수에 따라 복잡도가 떨어지는 것은 아니므로, 네 개로 바로 로직을 이해해보자.)
      • 예: data_list = [9, 3, 2, 5]
        • 처음 한번 실행하면, key값은 9, 인덱스(0) - 1 은 0보다 작으므로 끝: [9, 3, 2, 5]
        • 두 번째 실행하면, key값은 3, 9보다 3이 작으므로 자리 바꾸고, 끝: [3, 9, 2, 5]
        • 세 번째 실행하면, key값은 2, 9보다 2가 작으므로 자리 바꾸고, 다시 3보다 2가 작으므로 끝: [2, 3, 9, 5]
        • 네 번째 실행하면, key값은 5, 9보다 5이 작으므로 자리 바꾸고, 3보다는 5가 크므로 끝: [2, 3, 5, 9]

    3.알고리즘 분석

    • 반복문이 두 개 O(n**2)
      • 최악의 경우, (n(n1))/2
    • 완전 정렬이 되어 있는 상태라면 최선은 O(n)
Designed by Tistory.