Pour une raison quelconque, je ne peux pas obtenir ce code pour trier correctement. Je remplace les numéros de commande afin de faire une liste ordonnée.Pourquoi cette boucle while ne s'arrête-t-elle pas?
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);
La boucle while ici est censé arrêter lorsque le tableau est trié, mais qui ne se produit jamais.
Hypothèse: le tableau n'est pas trié comme prévu. – user2864740
'pour (i = 0; i
Votre sorte ne compare pas les éléments pour voir s'ils doivent être échangés. Il les échange toujours, qu'ils en aient besoin ou non. Ainsi, le tableau ne passe jamais dans un état trié. – RJM