zoukankan      html  css  js  c++  java
  • js中数字排序除了sort的方法

    除了系统自带的sort()数组排序方法,我们还可以自己编写函数进行数组排序;

    比如下题:

    var arr=[3,4,5,6,7]

    首先我们可以选择冒泡法进行如下比较(以下数字代表索引)
    
     // 0-1,1-2,2-3,3-4
    
      // 0-1,1-2,2-3
    
      // 0-1,1-2
    
      // 0-1
    
    for(var i=0;i<arr.length;i++){
        //第一个比较了四次  第二个比较了三次
        for(var j=0;j<arr.length-i;j++){
            //判断数字n和n+1的大小
            if(arr[j]>arr[j+1]){
                //判断完成后,数字进行交换
                var temp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;
            }
        }
    }
    console.log(arr)
    
    第二种方法,我们使用选择法;比较思路如下(以下数字代表索引)
    
      // 0-1,0-2,0-3,0-4  //拿第一个数字和其他数字依次比较,小的放在第一个
    
      // 1-2,1-3,1-4
    
      // 2-3,2-4
    
      // 3-4
    
     for(var i=0;i<arr.length;i++){
     // 为了能不断的使用第一位和后面的作比较,在能拿到第一个数据的时候,存到一个ls变量中
     // 将来使用这个ls变量作比较,就不影响真正的第一位的数据了,变量index为此时的索引
         var ls=arr[i];  
         var index=i; 
        for(var j=i+1;j<arr.length;j++){
          if(arr[i]>arr[j]){
               ls=arr[j]   //循环进行比较,判断出最小的存放在ls中
               index=j     //此时最小的数字的索引为j
           }
       }
       //比较完成后,交换数组中的数据
       arr[index]=arr[i];  
       arr[i]=ls;
     }
     console.log(arr)
  • 相关阅读:
    Unity学习
    C#文件操作
    Unity3D XLua热更新流程
    Unity编辑器扩展
    Unity性能优化
    Unity热更新 xLua
    Unity热更新 AssetBundle
    Quickcocos从安装到打包
    EasyTouch5插件使用 EasyTouch手势检测功能
    PHP CURL HTTPS内存泄露问题
  • 原文地址:https://www.cnblogs.com/lhx5213/p/12805739.html
Copyright © 2011-2022 走看看