одним словом
функция сортировки заменяет индекс на основе возвращаемого значения
как
[1 5 3]
is (5 > 3)
true
, так что это правильно и перейти к следующему
(b-a) = 5-3
возвращает положительное значение [true]
(b-a) = 3-5
возвращает отрицательное значение [false]
оно неверно и должно быть заменено предыдущим индексом
тогда функция сортировки будет делать это в цикле "Пока", пока не будет отрицательного значения, и вернет массив