美文网首页JavaScript 算法
JavaScript之冒泡排序

JavaScript之冒泡排序

作者: 越前君 | 来源:发表于2020-03-20 02:14 被阅读0次

冒泡排序,是一个相对较为简单易于理解的排序算法。下面以升序为例。

原理

  • 比较相邻的两个元素a、b。若 a > b,则互换 a 与 b 的位置,否则不变。
  • 按照上面的规则,第一轮循环次数为 array.length - 1,一轮循环结束,数组最后一项应该是最大数。
  • 第二轮开始,循环次数为 array.length - 1 - 1,同样把本次循环的最大项互换到 array[length - 1 - 1] 的位置上。
  • 以此类推...

图示

冒泡排序

实现

// 冒泡排序(升序)
function bubbleSort(arr) {
  for (let i = 0; i < arr.length - 1; i++) {
    for (let j = 0; j < arr.length - i - 1; j++) {
      if (arr[j] > arr[j + 1]) {
        [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
      }
    }
  }
  return arr;
}

const array = [8, 12, 4, 0, 22, 8, 21, 3, 56];
console.log(bubbleSort(array));  // [0, 3, 4, 8, 8, 12, 21, 22, 56]

时间复杂度

可知冒泡排序执行次数是 (n-1) + (n-2) + ... + 2 + 1 = (n^2 - n)/2,根据时间复杂度推导方式,可得到 O(n^2)

相关文章

  • JS实现排序算法

    原文:常见排序算法之JavaScript实现 - 知乎 目录 冒泡排序 选择排序 插入排序 合并排序 快速排序 1...

  • 2019-08-11

    Javascript中常用几种基础算法 1 排序-冒泡排序 //冒泡排序 function bubbleSort...

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • JavaScript之冒泡排序

    冒泡排序,是一个相对较为简单易于理解的排序算法。下面以升序为例。 原理 比较相邻的两个元素a、b。若 a > b,...

  • 七大排序算法之冒泡排序

    七大排序算法之冒泡排序 @(算法笔记)[排序算法, 冒泡排序, C++实现] 冒泡排序介绍 冒泡排序是七大排序算法...

  • JavaScript 中的算法

    JavaScript 中的算法 Sort 以下例子全部以正序为标准 bubbleSort 冒泡排序 冒泡排序算法的...

  • 冒泡排序法

    python排序算法之冒泡排序 首先说一下冒泡排序原理: 冒泡排序(Bubble Sort),是一种计算机科学领域...

  • Javascript冒泡排序

    var arr = [1, 5, 6, 9, 7, 5, 6, 4, 21]; for(var i = 0; i ...

  • javascript冒泡排序

    实现原理 数组中有 n 个数,比较每相邻两个数,如果前者大于后者,就把两个数交换位置;这样一来,第一轮就可以选出一...

  • JavaScript冒泡排序

网友评论

    本文标题:JavaScript之冒泡排序

    本文链接:https://www.haomeiwen.com/subject/coxdyhtx.html