常用的排序方法

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

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))

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))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值