По какой-то причине я не могу заставить этот код правильно сортировать. Я заменяю неупорядоченные номера, чтобы составить упорядоченный список.
var unsortedArray = new Array(1,2,5,4);
var sortedArray = unsortedArray;
var tempValue = 0;
function isSorted(array)
{
for (i = 0; i < array.length; i++)
{
if (array[i] > array[i+1])
{
return false;
}
}
return true;
}
function sort(array)
{
while (isSorted(array) == false)
{
for (i = 0; i < length; i++)
{
var tempValue = array[i];
array[i] = array[i+1];
array[i+1] = tempValue;
}
}
}
sort(sortedArray);
document.write(sortedArray);
Здесь предполагается, что цикл while останавливается, когда массив отсортирован, но этого никогда не происходит.
for (i = 0; i < length; i++)
Где вы беретеlength
, я нигде не вижу, чтобы он был определен, поэтому ваш цикл for, который должен сортировать, не запускается или будет использовать глобальное свойствоlength
и будет использовать это число вместо того, что вы имели в виду. - person Patrick Evans   schedule 28.04.2016