js实现的冒泡排序算法

var bubbleSort = function (arr) {
    var length = arr.length;
    for (var i = 0; i <length; i++) {
        for (var j = 0; j <length - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                swap(j, j + 1);
            }
        }
    }

    function swap(index1, index2) {
        var temp = arr[index1];
        arr[index1] = arr[index2];
        arr[index2] = temp;
    }

    return arr;
}
var arr = [1, 6, 2, 5, 9, 2, 0];
console.log(arr.toString());
console.log(bubbleSort(arr).toString());

由于以上的算法存在重复比较问题,所以以下是一个改进后的,改进点是从内循环中减去了外循环中已跑过的轮数:

var length = arr.length;
    for (var i = 0; i <length; i++) {
        for (var j = 0; j <length - 1-i; j++) {
            if (arr[j] > arr[j + 1]) {
                swap(j, j + 1);
            }
        }
    }

猜你喜欢

转载自blog.csdn.net/mangxi8200/article/details/81130176
今日推荐