지금까지는 주로 최악의 시나리오에서 얼마나 많은 단계가 걸리는지에 초점을 맞췄다. 하지만 최악의 시나리오 외에도 고려할 가치가 있는 상황들이 있다.
삽입 정렬을 배우면서 최악의 경우가 아닌 다른 시나리오를 분석하는 것에 어던 장점이 있는지 알아보자.
배열 [4, 2, 7, 1, 3]을 삽입 정렬해 보자.
2
를 삭제하고 tempValue
라는 변수에 저장한다.4
와 tempValue
를 비교한다.4
가 tempValue
보다 크므로 4
를 오른쪽으로 시프트 한다. 공백이 배열의 왼쪽 끝에 있으므로 더 이상 왼쪽으로 시프트할 수 없다.tempValue
를 다시 배열에 삽입해서 첫 번째 패스스루를 끝낸다. [2, 4, 7, 1, 3]
7
을 삭제하고 tempValue
변수에 저장한다.4
와 tempValue
를 비교한다. 4
가 더 작으므로 시프트하지 않는다. tempValue
보다 작은 값을 만났으므로 시프트 단계가 끝난다.tempValue
를 다시 배열에 삽입해서 두 번째 패스스루를 끝낸다. [2, 4, 7, 1, 3]
1
을 삭제하고 tempValue
변수에 저장한다.7
과 tempValue
를 비교한다.