# 冒泡排序(Bubble Sort)

# 概念

有一个无序的数字数组, 依次取相邻的两个元素比较大小, 并且按照一致的大小顺序进行交换, 全部执行完毕时会得到一个从大到小或者从小到大的有序数组

# 实现

function bubbleSort(arr) {
    let result = Array.from(arr);
    let len = result.length;
    for (let i = 0; i < len - 1; i ++) {
        for (let j = 0; j < len - 1 - i; j ++) {
            if (result[j] > result[j + 1]) {
                let temp = result[j + 1];
                result[j + 1] = result[j];
                result[j] = temp;
            }
        }
    }
    return result;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 复杂度

空间复杂度: O(1)

平均时间复杂度: O(n^2)

最好情况: O(n)

最坏情况: O(n^2)