Запутался в сортировке .sort() не понимаю как она работает по шагам. Вот пример кода:
[1, -2, 15, 2, 0, 8].sort(function (a, b) {
console.log(`${a - b}`);
console.log(a + " <> " + b);
return a - b;
});
Первое что я не понимаю - почему в переменную а в самом начале работы алгоритма идет -2 а в переменную b идет 1, мне кажется, что все должно работать наоборот. 1 должно быть в а и соответственно -2 в b:
Потом я не понимаю следующее: при первом сравнении результат -3, то есть -2 должно переместится влево за 1. Почему второе сравнение сравнивает 15 и -2? А потом вообще 2 и 1. Как этот алгоритм работает я что-то вообще не понимаю. Можете пошагово объяснить, как он в массиве меняет значения и почему это все так?