zoukankan      html  css  js  c++  java
  • 前端基础算法【冒泡排序】——两种思路及详解

    第一种简单的比较写法

    <script>
        var nums = [-30,755,6,8,99,0];
    
        //冒泡排序
        for(var i =0;i<nums.length-1;i++){  //控制比较的轮数
            for(var j=0;j<nums.length-1-i;j++){  //控制比较的次数
                //用第三方变量交换值
                if(nums[j]>nums[j+1]){ 
                    var temp = nums[j];
                    nums[j] = nums[j+1];
                    nums[j+1] = temp;
                }
            }
        }
        console.log(nums)
    
    </script>

    解题思路:每一次都对比两个相邻数的大小,小的就排在前面,否则就交换位置

          var nums = [-30,755,6,8,99,0];

    第1次排序后:-30,755,6,8,99,0
    第2次排序后:-30,6,755,8,99,0
    第3次排序后:-30,6,8,755,99,0
    第4次排序后:-30,6,8,99,755,0
    第5次排序后:-30,6,8,99,0,755

    第6次排序后:-30,6,8,99,0,755
    第7次排序后:-30,6,8,99,0,755
    第8次排序后:-30,6,8,99,0,755
    第9次排序后:-30,6,8,0,99,755
    第10次排序后:-30,6,8,0,99,755

    第11次排序后:-30,6,8,0,99,755
    第12次排序后:-30,6,0,8,99,755
    第13次排序后:-30,6,0,8,99,755
    第14次排序后:-30,0,6,8,99,755
    第15次排序后:-30,0,6,8,99,755

      ↑          ↑

    nums.length-1   nums.length-1-(5/4/3/2/1=== i)

    第二种写法

    不使用中间变量的写法

  • 相关阅读:
    Nginx 前后端分离部署
    SpringBoot 使用外部 Tomcat 容器运行
    SpringBoot 加载 properties
    SpringBoot 启动时加载的自动配置类(SpringFactoriesLoader、SPI)
    微信小程序订阅消息通知
    centos云服务器 部署Gitblit
    centos 安装java
    图片链接控制宽高
    腾讯云部署https
    腾讯云域名绑定
  • 原文地址:https://www.cnblogs.com/code-klaus/p/8473445.html
Copyright © 2011-2022 走看看