Попробую максимально доступно объяснить принцип сортировки массива вставками.
Для наглядности сортировать буду человечков по росту. Рост от 1 до 5. Вот начальное положение:
Первый человечек - первый элемент массива считаем отсортированным - потому что сам с собой он отсортирован. :) Стоит одинокий самоотсортированный
К одинокому человечку пришёл друг. Сравниваем его рост с первым - если первый больше второго, то меняем их местами. Таким образом - мы вставляем второй элемент на место первого. У нас уже два элемента отсортированы.
Пришёл третий человечек - приятель первых двух. Берём его и сравниваем со вторым - если второй выше, меняем их местами. Теперь сравниваем рост первого и второго - если первый выше - меняем местами. Итак, два раза поменяв местами элементы, мы вставили третий на место первого. Третий продвинулся на место первого. Теперь у нас три элемента отсортированы.
Берём следующий - четвёртый элемент, сравниваем сначала с третьим, если третий больше, то меняем местами. Потом сравниваем третий со вторым, если второй больше - меняем местами, с первым, если первый больше, меняем местами. В нашем случае четвёртый человечек сразу оказался выше третьего, поэтому ничего не делаем. Четвёртый уже стоит на своём месте.
И так далее, тот же принцип. Берём следующий элемент и проводим его влево сквозь массив до того момента, как он упрётся в меньший элемент, чем он сам.
Реализация на Java Script:
При реализации алгоритма на языке Java Script - использую два цикла.
Внешний - "перебирает" элементы начиная со второго. Слева направо. Нам ведь нужно сравнить все элементы.
И внутренний - "перебирает" элементы с индекса выбранного внешним (это top), "движется" по массиву влево.
Теперь немного подробнее:
top - позиция элемента с которым работаем. Начинаем с 1 - это индекс второго элемента массива. Начинаем с него, поскольку первый элемент с индексом 0 - уже отсортирован сам с собой.
el - это индекс текущего элемента при сравнении
while - цикл в котором мы сравниваем значение предыдущего элемента с текущим. Если он больше, то меняем элементы местами.
Массив котов для улучшения настроения :)