zoukankan      html  css  js  c++  java
  • 常用的排序方法

    这里只列举几种简单易懂的排序方法(不喜勿喷,如有错误欢迎指出)

    1、sort排序(按照字符编码的顺序进行排序)

    var arr=[4,9,2,6,50,23,61,5,0,7,3];
    function sysSort(arr){
        return arr.sort(function(a,b){
          return a-b
        })
    }
    console.log(sysSort(arr))
    //指定字段排序
    var arr1 = [
     {id:1,name:"lilei"},
     {id:3,name:"lucy"},
     {id:2,name:"zhangsan"}          
    ]
    arr1.sort(function(a,b){
       return a.id-b.id 
    })

    2、冒泡排序

    var arr = [6,2,6,84,22,10,33,9,5,4]
    //冒泡排序原理
    //双层for循环嵌套,对比如果第i个数小于第j个数时,利用中间变量d进行调换位置
    function bullbleSort(arr){
        var i = 0, len = arr.length, j, d;
        for(; i<len; i++){ 
            for(j=0; j<len; j++){ 
                if(arr[i] < arr[j]){ 
                    d = arr[j]; 
                    arr[j] = arr[i]; 
                    arr[i] = d; 
                } 
            } 
        }
                return arr
    }
    console.log(bullbleSort(arr))

    3、快速排序

    var arr = [1,2,6,3,4,9,20,15,23,5];
    function fastSort (arr){
        if(arr.length < 1){return arr};
        var inx = Math.floor(arr.length/2); //取数组中间数位置,以中间数为基准进行排序
        var mid = arr.splice(inx,1)[0];//获取中间数信息
        var left = [],right=[];
        for(let i = 0; i < arr.length; i++){
            if(arr[i] < mid){ 
                left.push(arr[i]); 
            }else{
                right.push(arr[i]);
            }
        }
        return fastSort(left).concat(mid,fastSort(right)) //从小到大排
    }
    console.log(fastSort(arr))
  • 相关阅读:
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Can you answer these queries? HDU
    Count the Colors ZOJ
    Balanced Lineup POJ
  • 原文地址:https://www.cnblogs.com/cloud-k/p/7686294.html
Copyright © 2011-2022 走看看