Ins

SORTING

삽입 정렬 (Insertion Sort)

이미 정렬된 구간에 새 값을 알맞은 자리로 밀어 넣는 과정을 한 단계씩, 또는 자동 재생으로 직접 확인하세요. 데이터가 얼마나 정렬되어 있는지에 따라 비교 횟수가 크게 달라진다는 점을 눈으로 비교할 수 있습니다.

재생 버튼을 눌러 정렬을 시작하세요.

비교 0회 · 교환 0회

1 / 1

속도
대기 삽입 대상 비교 중 교환됨 정렬 완료

PSEUDOCODE

for i ← 1 to n-1  j ← i  while j > 0 and array[j-1] > array[j]    swap(array[j-1], array[j])    j ← j-1

어떻게 동작하나요

정렬된 구간(처음엔 첫 번째 값 하나)에 새 값을 뒤에서부터 하나씩 비교하며, 자기보다 큰 값과 자리를 바꿔 왼쪽으로 밀어 넣습니다. 제자리를 찾을 때까지(또는 정렬된 구간의 맨 앞에 닿을 때까지) 이 과정을 반복합니다. 이미 정렬된 데이터일수록 비교가 한 번 만에 끝나 최선의 경우 O(n)에 가깝게 동작하지만, 역순 데이터에서는 매번 맨 앞까지 밀어야 해 O(n²)이 됩니다.

시간·공간 복잡도

최선 (이미 정렬됨)
O(n)
평균
O(n²)
최악 (역순)
O(n²)
공간 복잡도
O(1)
안정 정렬
예 (Stable)

"정렬됨" 프리셋에서는 비교 9회·교환 0회로 끝납니다 — while 조건이 매번 즉시 실패하기 때문입니다. 버블 정렬과는 다른 방식으로 O(n)에 도달합니다.

다른 정렬 알고리즘(버블·선택·병합·퀵)도 함께 시각화되어 있습니다 — Algorithm 코스로 돌아가기

1:1 정원제 · 상시 모집

정렬, 시간복잡도를 손으로 체감하며 다시 배우세요

당신에게 맞는 커리큘럼은 1:1 상담에서부터 시작됩니다.