为什么会这样? (冒泡排序)[JavaScript]
Why is this happening? (Bubble Sort) [JavaScript]
我目前在 JavaScript 中遇到冒泡排序程序的一些问题,我似乎遇到的问题是,例如,当我给出 1 - 10 的数组值时,它会组织它们像这样:1,10,2,3,4,5,6,7,8,9.
这是我的代码:
function bubble(){
var array = [10];
var j=0;
var i=0;
for(i=0; i<10; i++){
array[i] = prompt("Inset a Number");
}
for (i=0; i < 10; i++){
for (j=0; j < 10; j++){
if(array[j+1] < array[j]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
alert(array);
}
</script>
它正在将数据视为字符串并正确排序。您需要从 prompt() 中对您的输入进行 parseInt(),或者只减去 0。例如,prompt("Inset a Number")-0.
这些数字实际上是字符串,因为提示值是作为字符串返回的。
您需要像这样将字符串转换为 int:
array[i] = parseInt(prompt("Inset a Number"));
您目前正在比较字符串。因为prompt会return一个字符串,需要先转成int才能正确比较
array[i] = parseInt(prompt("Inset a Number"));
我目前在 JavaScript 中遇到冒泡排序程序的一些问题,我似乎遇到的问题是,例如,当我给出 1 - 10 的数组值时,它会组织它们像这样:1,10,2,3,4,5,6,7,8,9.
这是我的代码:
function bubble(){
var array = [10];
var j=0;
var i=0;
for(i=0; i<10; i++){
array[i] = prompt("Inset a Number");
}
for (i=0; i < 10; i++){
for (j=0; j < 10; j++){
if(array[j+1] < array[j]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
alert(array);
}
</script>
它正在将数据视为字符串并正确排序。您需要从 prompt() 中对您的输入进行 parseInt(),或者只减去 0。例如,prompt("Inset a Number")-0.
这些数字实际上是字符串,因为提示值是作为字符串返回的。 您需要像这样将字符串转换为 int:
array[i] = parseInt(prompt("Inset a Number"));
您目前正在比较字符串。因为prompt会return一个字符串,需要先转成int才能正确比较
array[i] = parseInt(prompt("Inset a Number"));