【发布时间】:2017-10-06 23:13:14
【问题描述】:
以下是我的冒泡排序代码,它只对数组进行降序排序。但是我正在尝试仅通过升序对其进行排序。请让我知道我哪里做错了。
var a = [53, 11, 34, 12, 18];
for(var i = 0; i < a.length; i++) {
for(var j=0; j < a.length; j++) {
if(a[i] > a[j]) {
var temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
console.log("Array:: ", a);
【问题讨论】:
-
唯一比较项目的操作是
a[i] > a[j]。你如何扭转这种关系? -
@Ryan 我认为 trincot 建议的方法比您交换评论更好
-
嗯,我浏览了这个问题,并没有注意到您实际上并没有进行冒泡排序。通常会有一个
sorted标志,它在循环开始时被重置并在执行交换时设置,对于 Θ(n) 最佳情况而不是 Θ(n²)。您在这里所拥有的是 selection 排序的错误实现。
标签: javascript algorithm sorting bubble-sort