【问题标题】:Why is this happening? (Bubble Sort) [JavaScript]为什么会这样? (冒泡排序)[JavaScript]
【发布时间】:2016-03-07 03:23:24
【问题描述】:

我目前在使用 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>

【问题讨论】:

  • 它将数据视为字符串并正确排序。
  • 您需要从parseInt()prompt() 输入您的输入
  • 或者只是减去0。例如prompt("Inset a Number")-0
  • 非常感谢你们,伙计们!问题似乎解决了。
  • 还有一个错误:当j==9 array[j+1] 未定义时

标签: javascript bubble-sort


【解决方案1】:

您当前正在比较字符串。因为prompt会返回一个字符串,所以需要先转换成int才能正确比较。

array[i] = parseInt(prompt("Inset a Number"));

【讨论】:

    【解决方案2】:

    数字实际上是字符串,因为提示值是作为字符串返回的。 您需要将字符串转换为 int,如下所示:

    array[i] = parseInt(prompt("Inset a Number"));
    

    【讨论】:

      【解决方案3】:

      它将数据视为字符串并正确排序。您需要从 prompt() 中解析您的输入,或者只需减去 0。例如,prompt("Inset a Number")-0。

      【讨论】:

        猜你喜欢
        • 2015-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-15
        • 1970-01-01
        • 1970-01-01
        • 2017-03-18
        • 2018-03-28
        相关资源
        最近更新 更多