• js数组排序


    除了系统自带的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)
    
    请用今天的努力,让明天没有遗憾。
  • 相关阅读:
    rest framework 认证 权限 频率
    rest framework 视图,路由
    rest framework 序列化
    10.3 Vue 路由系统
    10.4 Vue 父子传值
    10.2 Vue 环境安装
    10.1 ES6 的新增特性以及简单语法
    Django 跨域请求处理
    20190827 On Java8 第十四章 流式编程
    20190825 On Java8 第十三章 函数式编程
  • 原文地址:https://www.cnblogs.com/cupid10/p/12804722.html
Copyright © 2020-2023  润新知