算法排序篇-1【冒泡排序】js解法

110 阅读1分钟

冒泡排序

基本思路

利用双层for循环,外循环遍历数组的每一项,内循环拿当前的值与下一项进行比较,如果当前项的值比下一项的值大,则交换它们的位置。

解法

let array = [5, 3, 22, 11, 33, 10, 55]
function bubbleSort(array) {
    const { length } = array
    for (let i = 0; i < length; i++) {
        for (let j = 0; j < length - 1 - i; j++) { // 内层循环减去外层已跑过的轮数
            if (array[j] > array[j+1]) {
                [array[j], array[j+1]] = [array[j+1], array[j]] // 交换值es6(es2015方式)
            }
        }
    }
    return array
}
console.log(bubbleSort(array));

复杂度

冒泡排序的复杂度为O(n^2) 性能比较差不推荐使用

优点

简单易理解