js冒泡排序详解

Posted yuzeyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js冒泡排序详解相关的知识,希望对你有一定的参考价值。

因为过一阵要面试 大厂都比较注重算法题 所以今天练习一个简单的冒泡算法

冒泡算法的基本原理为:

    1.比较相邻的两个数 如果第一个数比第二个数大 那么就交换位置

    2.那么每次比较一轮之后 最大的数将会到最右侧

    3.所以综上方法对于长度为n的数组需要比较n-1次之后才能使数组排序完毕(为什么是n-1 因为最后就剩1个 他没的比了 他就是最小的)

    4.那么每批次比的时候因为之前已经把最大的挑出来放到左边已经固定 所以每批次比就少1次 如果比了n批就少n次

由此我们可以写出代码

function maopao (arr) {
        for(let k=0;k<arr.length-1;k++)     //之前说过了总共要比 数组长度-1 次  
               for(let i=0;i<arr.length-k-1;i++)//先减去之前已经排好的k个 再两两比较
                  {
                         let swap=0    
                         if(arr[i]>arr[i+1]){     //两个数比较大的放右边(两个杯子换水 要引入中间杯子swap)
                             swap=arr[i+1];
                             arr[i+1]=arr[i];
                            arr[i]=swap;
                       }
                  }          
            return arr  
}                                

  

    

以上是关于js冒泡排序详解的主要内容,如果未能解决你的问题,请参考以下文章

js十大排序算法详解

js十大排序算法详解

冒泡排序详解

七大排序算法(插排,希尔,选择排序,堆排,冒泡,快排,归并)--图文详解

冒泡排序详解

详解Java算法之冒泡排序(Bubble Sorting)