工作原理

重复遍历序列,比较相邻的两个元素,如果这两个元素顺序不正确,则交换。重复以上步骤直到排序完成。

js代码实现 + 效率测试

运算10次,平均耗时1018 ms

  1. // 创建 20000 个随机数,数值范围:1 - 100000
  2. let ary = [];
  3. for (let i = 0; i < 20000; i++) {
  4. ary.push( Math.floor( Math.random()*99999 + 1 ) );
  5. }
  6. // 冒泡排序
  7. console.time( '冒泡排序' );
  8. let len = ary.length;
  9. while (len > 0) {
  10. for (let i = 0; i < len; i++) {
  11. if (ary[i] > ary[i+1]) {
  12. let temp = ary[i];
  13. ary[i] = ary[i+1];
  14. ary[i+1] = temp;
  15. }
  16. }
  17. len--;
  18. }
  19. console.timeEnd( '冒泡排序' );