zoukankan      html  css  js  c++  java
  • JS排序之冒泡排序

    冒泡排序的两种策略:

    <script>
    // 第一种思路:
    // 一个数组中的数据,拿第一个和剩下的依次进行对比,数值小的赋值给第一个,一轮比较过后,则数值小的放在最前边。
    // 第二轮比较,则最前边的不需要比较(因为最小),拿第二个和剩下的进行比较,数值小的赋值给第二个。


    var arr = [12,15,2,47,98,76,23,13,0];
    function bubbleSort(arr){
       var num = 0;
       for(var i=0;i<arr.length-1;i++){
            for(var j=i+1;j<arr.length;j++){
                 num++;
                 if(arr[i]>arr[j]){ 
                       var tempSum = arr[i];
                       arr[i] = arr[j];
                       arr[j] = tempSum;
                 }
             }
         }
          console.log('bubbleSort的循环次数是'+num);
          return arr;
    }
    console.log(bubbleSort(arr));
    // 第二种思路:
    // 一个数组中的数据,拿第一个和剩下的依次进行对比,数值大的赋值给第二个,一轮比较过后,则数值大的放在最后边。
    // 第二轮比较,拿第一个和(n-1)个进行比较,数值大的赋值给第二个,最后是上轮数值最大的那个,不需对比。


    var arr2 = [12,15,2,47,98,76,23,13,0];
    function bubbleSort2(arr){
          var num2 = 0;
          for(var i=0;i<arr.length-1;i++){
                for(var j=0;j<arr.length-1-i;j++){
                      num2++
                      if(arr[i]>arr[j]){
                              var tempSum = arr[i];
                              arr[i] = arr[j];
                              arr[j] = tempSum;
                       }
                  }
           }
           console.log('bubbleSort2的循环次数是'+num2);
            return arr;
    }
    console.log(bubbleSort2(arr));
    </script>

  • 相关阅读:
    算法训练 表达式计算
    基础练习 十六进制转十进制
    基础练习 十六进制转十进制
    基础练习 十六进制转十进制
    New ways to verify that Multipath TCP works through your network
    TCP的拥塞控制 (Tahoe Reno NewReno SACK)
    Multipath TCP Port for Android 4.1.2
    How to enable ping response in windows 7?
    NS3
    Multipath TCP Port for Android
  • 原文地址:https://www.cnblogs.com/pengxiangchong/p/8351314.html
Copyright © 2011-2022 走看看