数组排序

第一种方法:JS提供的sort方法

var arr = [896,13,88,155,"a",12,45];
arr.sort()
console.log(arr);//[12, 13, 155, 45, 88, 896, "a"]

这种方法,默认首字母排序,以阿萨科目表为规则,在我们使用过程中不太方便。


第二种方法:在第一种方法的基础上做了改善
用到了一个函数,然后在sort()中调用这个函数,根据这个函数的返回值决定是正序还是倒序。

var arr = [896,13,88,155,12,45];
//从小到大:
function sss(a,b){
    return a-b;
}
arr.sort(sss);
console.log(arr);//[12, 13, 45, 88, 155, 896]

//从大到小
function sss(a,b){
    return b-a;
}
arr.sort(sss);
console.log(arr);//[896, 155, 88, 45, 13, 12]

第三种方法:冒泡排序
这种方法的整体思想是拿着数组的数一次跟下一个数比,把较大的数,换到下标较大的位置,依次进行,以达到数组排序的效果。
注意:只适合百十千的数,过万效率会比较低

var arr = [4,3,7,5,8,1];
for(var j = 0;j<arr.length-1;j++){//比较的次数,需要比较length-1次,
    for(var i = 0;i<arr.length-1-j;i++){//比较的数字,也是需要有length-1个数进行比较;但是之前比较过的,无需重复比较,所以需要-j
        if(arr[i]>arr[i+1]){
            var temp = arr[i];
            arr[i] = arr[i+1];
            arr[i+1] = temp;
        }
    }
}
console.log(arr);)//[1, 3, 4, 5, 7, 8]

咳咳,虽然这几种排序都不是太完美,但是也算是够用的了,啦啦啦~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值