美文网首页
冒泡排序算法

冒泡排序算法

作者: 康乐芳华 | 来源:发表于2018-12-19 14:57 被阅读0次

    冒泡排序算法如同他的名字一样, 将数据的值看作一个个气泡,按照一定的顺序(大到小, 或者小到大)依次移动到两端的位置
    最终数据的排列方式有两种 [小, 大] 或者 [大, 小]
    冒泡的方式有两种 大泡先冒, 或者 小泡先冒

    [小, 大] 大泡先冒

    function pupple(arr) {
        let length = arr.length;
        if(length === 1){ return arr }
        let res = arr;
        for (let i = 0; i < length - 1; i++){
            for (let j = 0; j < length - 1 - i; j++) {
                if(res[j] > res[j + 1]){
                    let temp = res[j]
                    res[j] = res[j +1]
                    res[j + 1] = temp
                }
            }
        }
        return res;
    }
    

    两层 for 循环中, 外层循环的次数决定了每冒一个气泡, 需要对数据比较的次。 例如一个不重复的, 大小不同的 10 位长度的数组, 选出其中最大的一个最多需要比较 9 遍, 选出该数字之后, 之后的操作便不再对其进行操作, 所以下一次比较需要比较 8 遍。所以内循环每次循环的次数是逐次减少的。 内循环是对数据具体的比较, 每次比较某个数据跟其下一个数据。

    -------- 9
    ------- 8
    ------ 7
    ----- 6
    ---- 5
    --- 4
    -- 3
    - 2
     1
    

    纵向表示外循环的次数 横向的数字表示内循环的次数

    相关文章

      网友评论

          本文标题:冒泡排序算法

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