工作原理
重复遍历序列,比较相邻的两个元素,如果这两个元素顺序不正确,则交换。重复以上步骤直到排序完成。
js代码实现 + 效率测试
运算10次,平均耗时1018 ms
// 创建 20000 个随机数,数值范围:1 - 100000
let ary = [];
for (let i = 0; i < 20000; i++) {
ary.push( Math.floor( Math.random()*99999 + 1 ) );
}
// 冒泡排序
console.time( '冒泡排序' );
let len = ary.length;
while (len > 0) {
for (let i = 0; i < len; i++) {
if (ary[i] > ary[i+1]) {
let temp = ary[i];
ary[i] = ary[i+1];
ary[i+1] = temp;
}
}
len--;
}
console.timeEnd( '冒泡排序' );