Я думаю, что ключ к вашему неправильному пониманию проблемы на самом деле скрыт в заголовке вашего вопроса
Требуется помощь в понимании вставка сортировка
Алгоритм действительно только сортирует текущий элемент, но идея состоит в том, что он запускается каждый раз, когда элемент добавляется в массив. Таким образом, каждый раз, когда он вызывается, остальная часть массива уже в порядке. Другими словами, вы пытаетесь отсортировать только последний элемент.
Итак, используя ваши примеры чисел (8, 2, 10, 5, 4, 12) и добавляя / сортируя их в массив по одному по порядку, последовательность будет следующей (сортировка на каждом шаге происходит точно как ты уже описал)
To be added | old array | after push | Result (after moveOver())
(8, 2, 10, 5, 4, 12)| [] | [8] | [8]
(2, 10, 5, 4, 12) | [8] | [8,2] | [2,8]
(10, 5, 4, 12) | [2,8] | [2,8,10] | [2,8,10]
(5, 4, 12) | [2,8,10] | [2,8,10,5] | [2,5,8,10]
(4, 12) | [2,5,8,10] | [2,5,8,10,4] | [2,4,5,8,10]
(12) | [2,4,5,8,10] | [2,4,5,8,10,12]| [2,4,5,8,10,12]