zoukankan      html  css  js  c++  java
  • 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)
    请用今天的努力,让明天没有遗憾。
  • 相关阅读:
    Java && Eclipse使用中的问题
    Java使用的扩展
    Java的基本使用之多线程
    Java的基本使用之反射
    Java的基本使用之IO
    Java的基本使用之异常处理
    CSS中的line-height和vertical-height
    Java的基本使用之多线程
    跟进记录
    将文件从已Root Android手机中copy出来的几个cmd窗口命令
  • 原文地址:https://www.cnblogs.com/cupid10/p/15617809.html
Copyright © 2011-2022 走看看