0
点赞
收藏
分享

微信扫一扫

JavaScript常见算法:冒泡排序

萨摩斯加士奇 2022-03-19 阅读 69

冒泡排序

/*
    BuubleSort:冒泡排序;前后两个数比较大小,设置小的排前面
    example:[2,7,1,89,35,4,9,11]
    平均时间复杂度:O(n^2);
    最好的时间复杂度: O(n);--一次遍历即可
    最坏的时间复杂度:O(n^2);
*/

function BubbleSort(arr) {
    // iS Array
    if (!(arr instanceof Array)) return;

    let length = arr.length - 1;
    // 当数组存在元素并且多于一个元素时执行
    if (length) {
        let temp;
        for (let i = 0; i < length; i++) {
            // 每次排序,最大的会在后面,便不需要再继续排序,即j< length -1 -i
            for (let j = 0; j < length - i; j++) {
                // 当后面的数值大于前面的数值时,交换位置
                if (arr[j] > arr[j + 1]) {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }

        }

    }
    console.log(arr);
    return arr;
}
BubbleSort([2, 7, 1, 89, 35, 4, 9, 11]);
举报

相关推荐

0 条评论