冒泡排序算法按降序排序项目 - JavaScript

时间:2017-05-08 19:58:00

标签: javascript algorithm sorting bubble-sort

以下是我的冒泡排序代码,它只是以降序排序数组。但是我试图通过升序排序。请让我知道我在哪里做错了。

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);

2 个答案:

答案 0 :(得分:3)

在适当的冒泡排序中,内循环不应每次迭代所有值。您的内部循环必须从i+1开始:

for(var j=i+1; j < a.length; j++) {

var a = [53, 11, 34, 12, 18];

for(var i = 0; i < a.length; i++) {
    for(var j=i+1; j < a.length; j++) {
        if(a[i] > a[j]) {
            var temp = a[i];
            a[i] = a[j];
            a[j] = temp;        
        }
    }
}

console.log("Array:: ", a);

答案 1 :(得分:0)

只需交换声明a[i] < a[j]而不是a[i] > a[j]

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);