zoukankan      html  css  js  c++  java
  • JS中的排序算法-冒泡排序解析

    冒泡排序算法

    例子:10,8,9,6,4,20,5  从小到大排序

    第一轮  1)10>8  交换数据 得到:8,10,9,6,4,20,5

                 2)10>9  交换数据 得到:8,9,10,6,4,20,5

                 3)10>6  交换数据 得到:8,9,6,10,4,20,5

                 4)10>4  交换数据 得到:8,9,6,4,10,20,5

                 5)10<20  不交换数据 得到:8,9,6,4,10,20,5

                 6)20>5  交换数据 得到:8,9,10,6,4,5,20

    结果:8,9,10,6,4,5,20

    第二轮  1)8<9  不交换数据 得到:8,9,10,6,4,5,20

                 2)9<10  不交换数据 得到:8,9,10,6,4,5,20

                 3)10>6  交换数据 得到:8,9,6,10,4,5,20

                 4)10>4  交换数据 得到:8,9,6,4,10,5,20

                 5)10>5  交换数据 得到:8,9,6,4,5,10,20

    结果:8,9,6,4,5,10,20

    第三轮  1)8<9  不交换数据 得到:8,9,6,4,5,10,20

                 2)9>6  交换数据 得到:8,6,9,4,5,10,20

                 3)9>4  交换数据 得到:8,6,4,9,5,10,20

                 4)9>5  交换数据 得到:8,6,4,5,9,10,20

     结果:8,6,4,5,9,10,20

    第四轮  1)8>6  交换数据 得到:6,8,4,5,9,10,20

                 2)8>4  交换数据 得到:6,4,8,5,9,10,20

                 3)8>5  交换数据 得到:6,4,5,8,9,10,20

      结果:6,4,5,8,9,10,20

    第五轮  1)6>4  交换数据 得到:4,6,5,8,9,10,20

                 2)6>5 交换数据 得到:4,5,6,8,9,10,20

        结果:4,5,6,8,9,10,20

    第六轮  1)4<5  不交换数据 得到:4,5,6,8,9,10,20

    分析一下得出JS冒泡排序算法如下

    function sort(data){
      var i=0;
      while(i<data.length-1){
        for(var j=0;j<data.length-i-1;j++){
          if(data[j]>data[j+1]){
            var x=data[j];
            data[j]=data[j+1];
            data[j+1]=x;
          }
        }
        i++;
      }
    }
      var data=[10,8,9,6,4,20,5];
      console.log('before:'+data);
      sort(data);
      console.log('after:'+data);

  • 相关阅读:
    从零开始写STL-容器-双端队列
    JVM 总结
    从零开始写STL-容器-list
    从零开始写STL—容器—vector
    Web 后端编程的几个关键点(总结中...)
    Java Web 总结
    Spring实战读书笔记
    MSDN 同步部分 个人笔记
    洛谷 P3391【模板】文艺平衡树(Splay)
    洛谷 P1503 鬼子进村
  • 原文地址:https://www.cnblogs.com/jing-tian/p/10956732.html
Copyright © 2011-2022 走看看