美文网首页
冒泡排序以及其改进

冒泡排序以及其改进

作者: 海山城 | 来源:发表于2019-06-04 10:21 被阅读0次
let array = [8, 3, 0, 32, 99, 1, 888, 23, 6, 5, 999, 1, 342, 3, 6, 23, 55]

function bubbleSort(array) {
  for (let i = 0; i < array.length - 1; i++) {
    for (let j = 0; j < array.length - 1 - i; j++){
      if (array[j] > array[j + 1]) {
        let tmp = array[j + 1]
        array[j + 1] = array[j]
        array[j] = tmp
      }
    }
  }
  console.log("array", array)
}

// 改进冒泡排序1
function bubbleSortNice(array) {
  let pos = 0;
  let length = array.length - 1
  for (let i = 0; i < array.length - 1; i++) {
    for (let j = 0; j < length; j++){
      if (array[j] > array[j + 1]) {
        let tmp = array[j + 1]
        array[j + 1] = array[j]
        array[j] = tmp
        pos = j
      }
    }
    length = pos
  }
  console.log("array", array)
}

// 改进冒泡排序2
function bubbleSortNice2(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]) {
                pos = j;
                const temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
        i = pos;
    }
    console.log(arr);
}

console.time("bubbleSort")
bubbleSort(array)
console.timeEnd("bubbleSort")

console.time("bubbleSortNice")
bubbleSortNice(array)
console.timeEnd("bubbleSortNice")

console.time("bubbleSortNice2")
bubbleSortNice2(array)
console.timeEnd("bubbleSortNice2")
运行时间

相关文章

  • 冒泡排序以及其改进

  • JS算法笔记 - 排序

    冒泡排序 改进冒泡排序 选择排序 快速排序 在JS中相对较快 插入排序 改进:二分插入排序 希尔排序 动态定义间隔...

  • 看图说话排序算法之冒泡排序

    排序算法的种类非常多,这里总结冒泡排序和对冒泡排序的改进---快速排序的循环实现和递归实现。 一丶冒泡排序 假设待...

  • 排序-鸡尾酒排序

    鸡尾酒排序,也叫定向冒泡排序,是冒泡排序的一种改进。此算法与冒泡排序的不同处在于从低到高然后从高到低,而冒泡排序则...

  • php之排序-------冒泡排序的优化

    本文需要在理解冒泡排序的基础之上 排序是算法入门的基础操作,冒泡排序很经典。下面这个改进后的冒泡排序,使循环的次数...

  • 排序算法篇_快速排序法

      快速排序(Quick Sort)法和冒泡排序法类似,都是基于交换排序思想的。快速排序对冒泡排序法进行了改进,从...

  • 基本算法——快速排序算法

    快速排序算法是对冒泡算法的改进。所以我们首先来简单的谈谈冒泡算法。 1.冒泡算法 冒泡排序(Bubble S...

  • 冒泡排序(Bubble Sort)以及改进

    冒泡排序(Bubble Sort) 最简单写法 冒泡排序改进 优化:从尾部开始向前移动 好处在于:排序时候从后边开...

  • 排序算法

    冒泡 快速排序 快速排序(Quicksort)是对冒泡排序的一种改进,它的基本思想是:通过一趟排序将要排序的数据分...

  • C语言必学的12个排序算法:快速排序(第5篇)

    基本思想 快速排序(Quick Sort),本质上是对冒泡排序的改进,以从小到大排序为例,每趟排序将待排的数据记录...

网友评论

      本文标题:冒泡排序以及其改进

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