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);

  • 相关阅读:
    hudson中 ANT 编译警告: 编码 UTF-8 的不可映射字符解决方法
    Jmeter与hudson,ant集成
    Hudson配置路径
    python 面向对象:封装---对象的属性可以是另一个类创建的对象
    python 面向对象:封装
    python3 f-string格式化字符串的高级用法
    iOS微信支付无法直接返回APP的问题
    学习git&github
    Appium之xpath定位详解
    selenium等待方式详解
  • 原文地址:https://www.cnblogs.com/jing-tian/p/10956732.html
Copyright © 2011-2022 走看看