배열은 원소를 한 칸씩 복사해 자리를 만든다
현재 단계는 값을 읽는 원본 칸(source)과 값을 쓰는 대상 칸(destination)을 하나씩 표시한다. 단계가 진행될수록 누적 이동 수와 배열 내용이 함께 바뀐다.
뒤 원소부터 빈 칸 쪽으로 복사해야 원본 칸의 원래 값이 남는다.
복사 방향을 잘못 고르면 아직 읽지 않은 값이 사라진다
위 절의 연산과 인덱스를 그대로 쓴다. 옮길 원소가 둘 이상이면 순서가 반대일 때 아직 읽지 않은 값이 사라진다.
3 → 4, 2 → 3
오른쪽 끝에서 시작하므로 아직 복사하지 않은 a[2]가 남는다.
2 → 3부터 시작
a[3]의 d를 옮기기 전에 e가 그 칸을 덮어쓴다.
삽입은 n − i개, 삭제는 n − i − 1개를 옮긴다. 복사 순서는 이동 수가 아니라 데이터 보존을 결정한다.