Menu
Coddy logo textTech

Implementation (Part 2)

Coddy의 삽입 정렬 - DSA 시리즈 코스 레슨 — 9개 중 6번째.

시나리오: [5, 2, 9, 1, 5] 정렬하기

1단계: 초기 상태

  • 원본 배열: [5, 2, 9, 1, 5]
  • 이것을 우리가 손에 든 카드(또는 숫자 배열)라고 상상해 보세요.

2단계: 첫 번째 요소 (i=1, key=2)

  • 두 번째 카드(요소)부터 시작합니다: key = 2.
  • 25(지금까지 정렬된 유일한 요소)와 비교합니다.
  • 2가 더 작으므로, 5를 오른쪽으로 옮기고 그 자리에 2를 삽입합니다.
  • 업데이트된 배열: [2, 5, 9, 1, 5]

3단계: 두 번째 요소 (i=2, key=9)

  • 다음 카드로 이동합니다: key = 9.
  • 95와 비교합니다.
  • 9가 더 크므로, 옮길 필요가 없습니다.
  • 업데이트된 배열: [2, 5, 9, 1, 5] (변경 없음)

4단계: 세 번째 요소 (i=3, key=1)

  • 다음 카드로 이동합니다: key = 1.
  • 19와 비교한 다음, 5와 비교합니다.
  • 95를 오른쪽으로 옮겨 1이 들어갈 공간을 만듭니다.
  • 업데이트된 배열: [1, 2, 5, 9, 5]

5단계: 네 번째 요소 (i=4, key=5)

  • 다음 카드로 이동합니다: key = 5.
  • 59와 비교합니다.
  • 5가 더 작으므로, 옮길 필요가 없습니다.
  • 업데이트된 배열: [1, 2, 5, 9, 5] (변경 없음)

6단계: 다섯 번째 요소 (i=5, key=5)

  • 마지막 카드로 이동합니다: key = 5.
  • 59와 비교합니다.
  • 5가 더 작으므로, 옮길 필요가 없습니다.
  • 업데이트된 배열: [1, 2, 5, 5, 9]

최종 결과:

  • 정렬된 배열: [1, 2, 5, 5, 9]

각 단계에서 우리는 카드(요소)를 하나씩 집어 들어 정렬된 카드들과 비교하고, 필요한 경우 다른 카드들을 옮기면서 올바른 위치에 배치합니다. 전체 배열이 정렬될 때까지 이 과정을 반복합니다.

challenge icon

챌린지

쉬움

이제 각 요소에 대해 정렬을 수행하는 내부 루프를 구현하세요.

 

insertionSort 함수 내부의 정렬을 완성하세요.

함수는 또한 마지막에 배열의 요소를 하나씩 줄바꿈하여 출력해야 합니다.

이전 레슨과 힌트를 참고하세요 :)

직접 해보기

def insertionSort(arr):
    for i in range(1, len(arr)):
        key = arr[i]
        print(key)

삽입 정렬 - DSA 시리즈의 모든 레슨