何らかの理由で、このコードを適切に並べ替えることができません。順序付きリストを作成するために、順序外れ番号を置き換えています。なぜループが停止していないのですか?
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ループは、配列をソートしたときに停止することになって、それが起こることはありません。
仮説:配列は期待どおりにソートされません。 – user2864740
'for(i = 0; i
あなたの並べ替えは、スワップが必要かどうかを見るために要素を比較していません。彼らはそれが必要かどうかにかかわらず、いつもそれらを交換します。したがって、配列はソートされた状態になることはありません。 – RJM