美文网首页
JS冒泡排序

JS冒泡排序

作者: Simon_King | 来源:发表于2019-04-03 21:39 被阅读0次

写个冒泡排序

写就写嘛,走你!

function bubbleSort(arr) {
    let count = 0; //统计循环次数
    for(let i = arr.length; i > 0; i--) { // 从最后一个选起
        for (let j = 0; j < i; j++) { // 限定对比的范围
             // 前一个和后一个对比,如果前一个大于后一个,就调换位置
            if (arr[j] < arr[j + 1]) {
                const temp = arr[j]; // 缓存前一个
                 // 删除最后一个,插入一样的前一个,这个时候2个都是前一个一样的值
                arr.splice(j, 1, arr[j + 1]);
                arr.splice(j + 1, 1, temp); // 删除后一个,把缓存的前一个插入
                
                /* 这样也是可以的嘛,目的都是调换位置
                arr[j] = arr[j + 1];
                arr[j+1] = temp;
                */
            }
            count++;
        }
    }
    console.log(`循环次数为:${count}次`);
    return arr;
}

能优化一下吗

??? 什么鬼, 这个还可以优化?
经过3天3夜的思考,掉了300根头发,发现好像每一次遍历都不用跟前面一个再比了

function bubbleSort(arr) {
    let count = 0; //统计循环次数
    for(let i = arr.length; i > 0; i--) { // 从最后一个选起
        for (let j = 0; j < i - 1; j++) { // ** 就在这,减1就好了,可以节省循环
             // 前一个和后一个对比,如果前一个大于后一个,就调换位置
            if (arr[j] < arr[j + 1]) {
                const temp = arr[j]; // 缓存前一个
                 // 删除最后一个,插入一样的前一个,这个时候2个都是前一个一样的值
                arr.splice(j, 1, arr[j + 1]);
                arr.splice(j + 1, 1, temp); // 删除后一个,把缓存的前一个插入
                
                /* 这样也是可以的嘛,目的都是调换位置
                arr[j] = arr[j + 1];
                arr[j+1] = temp;
                */
            }
            count++;
        }
    }
    console.log(`循环次数为:${count}次`);
    return arr;
}

相关文章

  • js排序-随便写写

    排序随便写写 记录一下js排序插入排序 冒泡排序

  • Js冒泡排序&选择排序

    title: Js冒泡排序&选择排序date: 2018-05-03 23:00:00tags: 基础排序冒泡法c...

  • JS算法笔记 - 排序

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

  • 12.3 js冒泡排序

    js冒泡排序,没有很难的点,直接贴代码吧。

  • JS冒泡排序

    冒泡排序思想:每一次对比相邻两个数据的大小,小的排在前面,如果前面的数据比后面的大就交换这两个数的位置,要实现上述...

  • js冒泡排序

    在js的学习中,总会遇到各种各样的算法,今天来详解下js的冒泡排序。 大致原理: 循环整个数组,如果前面的...

  • JS冒泡排序

    说明 时间复杂度指的是一个算法执行所耗费的时间 空间复杂度指运行完一个程序所需内存的大小 稳定指,如果a=b,a在...

  • js冒泡排序

  • 冒泡排序(JS)

    冒泡排序在所有排序算法中最简单。然而,从运行时间来看,冒泡排序是最慢的一个,它的复杂度是O(n²)。代码如下:

  • js冒泡排序

    var aa=[15,65,51,23,46,54,33];function mp(arr){var len=ar...

网友评论

      本文标题:JS冒泡排序

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