가수면

삽입 정렬 알고리즘 본문

CS/CS

삽입 정렬 알고리즘

니비앙 2023. 11. 9. 15:19

예시 배열 - [9, 3, 2, 5]

 

1회차 - 1과 0을 비교 후 교체  [3, 9, 2, 5]
2회차 - 2와 1을 비교 후 교체 [3, 2, 9, 5], 1과 0을 비교 후 교체 [2, 3, 9, 5]
3회차 - 3과 2를 비교 후 교체 [2, 3, 5, 9], 2과 1를 비교 후 교체 [2, 3, 5, 9], 1과 0을 비교 후 교체 [2, 3, 5, 9]

 

턴 수 - length - 1

각 턴의 순회 횟수 - length - 1

 

비교 후 뒤에 값이 더 클 경우 반복문 종료

앞에 회차에서부터 거슬러오면서 정렬을 했기 때문에 비교 시 값이 더 큰 경우 앞에 값들은 이미 정렬된 값들이라는 확신을 할 수 있음

 

정리

1. length -1만큼 반복문

2. 1번 안에 index + 1(시작), 0(1 까지), -1만큼 중첩 반복문

3. 비교 후 앞의 값보다 더 작으면 바꿔주는 로직

4. else로 반복문 종료

 

def insertionSort(data):
    for index in range(len(data) - 1):
        for index2 in range(index + 1, 0, -1):
            if data[index2] < data[index2 - 1]:
                data[index2], data[index2 - 1] = data[index2 - 1], data[index2]
            else:
                break
    return data

 

'CS > CS' 카테고리의 다른 글

동적 계획법  (0) 2023.11.09
선택 정렬 알고리즘  (0) 2023.11.09
버블 정렬 알고리즘  (0) 2023.11.09
그래프 순회  (0) 2023.05.30
그래프 구현  (0) 2023.05.30
Comments