zoukankan      html  css  js  c++  java
  • 【数组】—冒泡排序&&选择排序---【巷子】

    /*
      什么是冒泡排序:从头到尾比较相邻的两个数的大小,如果符合条件则进行比较
      
      【注】:从小到大进行排序


      假设有一个数组 var arr = [9,8,7,6,5,4]; 我们想要进行这个数组进行排序那么按照冒泡排序的规则我们可以进行演变和尝试

      第一次比较
      9 8 7 6 5 4
      
      8 9 7 6 5 4
      
    8 7 9 6 5 4
      8 7 6 9 5 4
      8 7 6 5 9 4
      8 7 6 5 4 9
      
      通过第一轮的比较我们将最大的数字9比较了出来,但是这并不是我们想要的最终结果,所以我们还需要继续比较


      第二次比较
      8 7 6 5 4

      7 8 6 5 4
      7 6 8 5 4
      7 6 5 8 4
      7 6 5 4 8
      
      通过第二轮比较我们将最大数字8比较了出来

      第三次比较
      7 6 5 4
      
      6 7 5 4
      6 5 7 4
      6 5 4 7
      
      通过比较我们将最大数字7比较了出来

      第四次比较
      6 5 4

      5 6 4
      5 4 6
      
      通过比较我们将最大数字6比较了出来

      第五次比较
      5 4
      
      4 5
      
      通过比较我们将数组5比较了出来


      
      【注】:通过以上演变我们得出一个结论也就是说比较的次数等于数组的长度减一; 每一次的比较内部需要两两比较的次数是 数组的长度-1-i
      
    */
    var temp;
    for(var i=0;i<arr.length-1;i++){
      for(var j=0;j<arr.length-1-i;j++){
        if(arr[j]>arr[j+1]){
           temp = arr[j];
           arr[j] = arr[j+1];
           arr[j+1] = temp; 
        }
      }
    }
    /*
      什么是
    选择排序
         类似于打擂台一样,谁赢了谁就站在第一位

       
      假设有一个数组 var arr = [9,8,7,6,5]; 我们想要进行这个数组进行排序那么按照选择排序的规则我们可以进行演变和尝试
      第一轮比较
      9 8 7 6 5
      
      8 9 7 6 5
      7 9 8 6 5
      6 9 8 7 5
      5 9 8 7 6

      第一轮比较出最小的数放在了第一位

      第二轮比较

      9 8 7 6

      8 9 7 6
      7 9 8 6
      6 9 8 7

      第二轮比较出最小的数放在了第一位

      第三轮比较
      9 8 7

      8 9 7
      7 9 8

      第三轮比较出最小的数放在了第一位

      第四轮比较
      9 8
      
      8 9

      第四轮比较完毕


      【总结】:首先看比较次数的规律:数组的长度-1,每轮比较的规律:每次比较的位置都是当前数字的位置+1进行的比较

    */
    var temp;
    for(var i=0;i<arr.length-1;i++){
      for(var j=i+1;j<arr.length;j++){
        if(arr[i]>arr[j]){
          temp = arr[i];
          arr[i] = arr[j];
          arr[j] = temp;
        }
      }
    }
  • 相关阅读:
    第一个ExtJS练习(添加用户面板)
    利用高德地图通过给定坐标点画带箭头方向的路径
    安装myeclipse2015 stable 3.0破解之后发生出现SECURITY ALERT:iNTEGRITY CHECK ERROR然后闪退解决方案
    当你的SSM项目中的springmvc.xml发生第一行错误解决方案
    新建maven项目遇到Select an Archetype时没有maven-archetype-webapp处理方法
    XML、HTML、JSON对比
    Mac配置apache2.4.25服务器
    使用HTTP协议访问网络
    android数据持久化存储
    常用git命令
  • 原文地址:https://www.cnblogs.com/nanianqiming/p/7638814.html
Copyright © 2011-2022 走看看