7, 5, 9, 0, 3, 1, 6, 2, 4, 8
이라는 리스트를 삽입정렬한다면7
은 정렬된 리스트, 5, 9, 0, 3, 1, 6, 2, 4, 8
는 정렬되지 않은 리스트로 간주하고 삽입정렬을 시작한다0) ~ ~ ~ ~ max0
1) ~ ~ ~ max1 max0
2) ~ ~ max2 max1 max0
3) ~ max3 max2 max1 max0
종료
0) min0 ~ ~ ~ ~ : 전체 리스트(index 0 ~ 4)에서 제일 작은 원소를 찾아서 index 0 위치에
1) min0 min1 ~ ~ ~ : 부분 리스트(index 1 ~ 4)에서 제일 작은 원소 찾아서 index 1 위치에
2) min0 min1 min2 ~ ~ : 부분 리스트(index 2 ~ 4)에서 제일 작은 원소 찾아서 index 2 위치에
3) min1 min1 min2 min3 ~ : 부분 리스트(index 3 ~ 4)에서 제일 작은 원소 찾아서 index 3의 위치에
종료
배열 맨 처음 정렬된 부분에, 정렬되지 않은 다음 항목을 반복적으로 삽입하는 방식
0) <~> ~ ~ ~ ~ : 부분 리스트(index0)는 이미 정렬된 리스트, index1을 부분리스트에 삽입하여 정렬한다.
1) <~ ~> ~ ~ ~ : 부분 리스트(index0 ~ 1)은 이미 정렬된 리스트, index2를 부분 리스트에 삽입하여 정렬한다.
2) <~ ~ ~> ~ ~ : 부분 리스트(index0 ~ 2)은 이미 정렬된 리스트, index3을 부분 리스트에 삽입하여 정렬한다.
3) <~ ~ ~ ~> ~ : 부분리스트(index 0 ~ 3)은 이미 정렬된 리스트, index4를 부분리스트에 삽입하여 정렬한다.
종료
앞으로 이동하며 잘못 정렬된 값을 찾은 후, 올바른 위치로 값을 교환하며 다시 뒤로 이동
숫자의 발생 횟수를 계산하는 누적 카운트를 사용
누적 카운트를 갱신하여 순서대로 숫자를 직접 배치하는 방식