Я пытаюсь сделать метод sort() самостоятельно с помощью функции.Как проверить, все ли номера заменены в массиве?
function arrange(arr) {
var arrangedList = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] > arr[i + 1]) {
var tmp = arr[i + 1];
arr[i + 1] = arr[i]
arr[i] = tmp;
}
arrangedList.push(arr[i]);
}
return arrangedList;
}
Он меняет места, как я хотел, но проблема в том, что он меняет только один раз. если я вызываю функцию с [7,1,6,2] он будет работать так:
[1,7,6,2]
[1,6,7,2]
[1,6,2,7]
- и здесь он останавливается. он не будет проверять снова, если 6 больше 2, а затем поменяется. Как я могу это решить?
Вы можете увидеть мою скрипку here.
Сразу я могу довольно смело сказать, что отсутствие вложенного цикла итератора в вашем первом цикле 'for' (или наоборот) является плохим знаком. Проверьте [алгоритмы сортировки пузырьков] (http://www.stoimen.com/blog/2010/07/09/friday-algorithms-javascript-bubble-sort/), если вы ищете решение. –