美文网首页
前端-冒泡排序 (交换排序)

前端-冒泡排序 (交换排序)

作者: FConfidence | 来源:发表于2018-09-07 23:27 被阅读18次
  1. 冒泡排序 (交换排序)
    • 稳定性: 稳定

    • 时间复杂度: O(n^2)
      每一次排序, 将最小的值往前移动到最终的位置

    • 比较次数: n(n-1)/2

    • 移动次数: 3n(n-1)/2 (每次比较都必须进行交换元素, 需要移动三次)
          每一趟排序必定有一个元素放置到了其最终的位置上面

function BubbleSort(arr) {
  const len = arr.length;
  let i, j, flag;
  // i其实可以看成是排序的次数
  for (i = 0; i < len; i++) {
    flag = false; // 表示上一次的循环过程中 是否有交换位置的操作, 没有的话, 表示已经完成好了所有的排序
    // 从后往前面进行排序
    for (j = len - 1; j > i; j--) {
      if (arr[j - 1] > arr[j]) { // 前面的元素大于后面的 则交换位置, 把小的元素往前面移动
        flag = true;
        // swap(arr, j-1, j)
        temp = arr[j - 1];
        arr[j - 1] = arr[j];
        arr[j] = temp;
      }
    }
    if (!flag) {
      return;
    }
  }
}

const a = [5, 2, 4, 3, 8, 6, 9, 0, 1, 7];
BubbleSort(a);
console.log(a);

相关文章

  • 排序算法之交换排序

    利用交换数据元素的位置进行排序的方法称为交换排序。常见的交换排序方法有冒泡排序和快速排序。 1. 冒泡排序 1.1...

  • 排序算法

    排序算法 冒泡排序 选择排序 直接插入排序 希尔排序 堆排序 归并排序 快速排序 冒泡排序 冒泡排序是一种交换排序...

  • 冒泡排序

    冒泡排序,属于内部排序中的交换排序。

  • 【数据结构】【C#】019-交换类排序:🌓冒泡排序(稳定)(重要

    交换排序:冒泡排序 ( 相邻比序法 )(稳定) 冒泡排序是一种简单的交换类排序方法,它是通过相邻的数据元素的交换,...

  • 交换排序法

    交换排序法是指借助于数据元素之间的相互交换进行排序的一种方法。冒泡排序与快速排序法都属于交换排序法。 冒泡排序法的...

  • iOS - 冒泡排序

    Demo_github 冒泡排序 冒泡排序(Bubble Sort)是一种交换排序。两两比较待排序的关键字,并交换...

  • 前端er常用的几种排序方法

    前端常用的排序方法有:冒泡排序,选择排序,快速排序,插入排序 一、冒泡排序 理解冒泡排序 相邻的两个元素依次比较,...

  • 前端-冒泡排序 (交换排序)

    冒泡排序 (交换排序)稳定性: 稳定时间复杂度: O(n^2)每一次排序, 将最小的值往前移动到最终的位置比较次数...

  • 排序算法

    冒泡排序 选择排序 插入排序二分插入排序希尔排序 堆排序 归并排序 快速排序 交换排序类:冒泡排序快速排序 选择排...

  • 排序算法

    冒泡排序 选择排序 元素交换的方式

网友评论

      本文标题:前端-冒泡排序 (交换排序)

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