【问题标题】:Bubble sorting function seems not working冒泡排序功能似乎不起作用
【发布时间】:2018-06-22 13:51:34
【问题描述】:

最近,我很困惑我的代码出了什么问题。

问题:每次在输入字段中输入整数时,我都想进行冒泡排序。

结果应该是:1,2,3,4,5,6,7,8,9,10 > 但每次我输入 2 位数前。 1和10的结果将是

错误结果:1,10,2,3,4,5,6,7,8,9

var array = [];
function newfunction(){
  var newArray = . document.getElementById("number").value
  array.push(newArray);
  console.log(array);
  for( var i = 0; i < array.length; i++){
    for (var j = array.length; j>1; j++){
      if(parseInt(array[i-1]) < parseInt(array[i])){
        var temp = array[i-1];
        array [i-1] = array [i]; 
        array[i]=temp;
      }
    }
  }
}

【问题讨论】:

  • 你做错事了......它正在比较字符串......
  • 你怎么叫newfunction分享你的HTML
  • @PraveenKumar 我应该改变什么?
  • 我可以看到的一个问题是您没有在循环体内使用j。所以本质上,你只是多次比较 2 个元素
  • @hazy 试试这个:var newArray = parseInt(document.getElementById("number").value); 并摆脱 j 循环...

标签: javascript bubble-sort


【解决方案1】:

var array = [];
function newfunction(){
  array.push(document.getElementById("number").value);
  for (var i = 0; i < array.length; i++) {
    for (var j = 0; j < (array.length - i - 1); j++) {
      if(parseInt(array[j]) > parseInt(array[j+1])) {
        var tmp = array[j];
        array[j] = array[j+1];
        array[j+1] = tmp;
      }
    }        
  }
  console.log(array);
}
&lt;input type="text" id="number" onblur="newfunction()"/&gt;

看看这段代码。它使用冒泡排序对数组进行排序。

您必须在输入中键入一个数字,然后按 Tab 或单击外部以将数字添加到数组并查看排序结果。

【讨论】:

    猜你喜欢
    • 2021-12-30
    • 2019-03-29
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    • 2014-03-16
    • 2014-12-30
    相关资源
    最近更新 更多