说说对冒泡排序的理解
# 是什么
冒泡: 如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”

# 怎么用
- 基本冒泡O(n^2)
- 升级冒泡O(n)
# 基本冒泡(循环2次)
function maopao(arr) {
const len = arr.length - 1;
for (let i = 0; i < len; i++) {
for (let j = 0; j < len - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j + 1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
const arr = [ 1,19,2,5,99,23]
const res = maopao(arr)
console.log(res) // [ 1, 2, 5, 19, 23, 99 ]
# 升级冒泡(只循环一次)
function maopao2(arr) {
let i = arr.length - 1;
while (i > 0) {
let pos = 0;
for (let j = 0; j < i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
pos = j;
}
i = pos; // 记录最后一次变化的位置
}
return arr;
}
const arr = [1, 19, 2, 5, 99, 23];
const res = maopao2(arr);
console.log(res);// [ 1, 2, 5, 19, 23, 99 ]
# 场景
入门算法介绍
上次更新: 2021/12/19, 18:05:42