为了账号安全,请及时绑定邮箱和手机立即绑定

快速排序和sort排序(冒泡排序)整理

标签:
JavaScript

在项目中遇到json数据排序的问题,从网上看到两种排序方法,列了出来,大家往下看

一种:快速排序

网上看到阮一峰写的一篇,链接在下面,我把代码整理了一下

http://http://www.ruanyifeng.com/blog/2011/04/quicksort_in_javascript.html

function quickSort(arr) {
    //假如数组个数小于1,则返回
    if(arr.length<=1){
        return arr;
    }
    var pivotIndex = Math.floor(arr.length/2);//向下取整
    var pivot = arr.splice(pivotIndex,1)[0];//取基准值,就是最中间的那个值
    var left = [];//存放比基准数小的元素
    var right = [];//存放比基准数大的元素
    for(var i=0;i<arr.length;i++){
        //console.log('基准值:'+pivot+',当前元素'+arr[i]);
        if(arr[i]<pivot){
            //console.log('移动'+arr[i]+'到左边');
            left.push(arr[i]);
        }
        else {
            //console.log('移动'+arr[i]+'到右边');
            right.push(arr[i]);
        }
    }
    return quickSort(left).concat([pivot],quickSort(right));//用递归将数据链接起来;
}
var sortlist = [20,68,47,21,10,10];
var lastval = quickSort(sortlist);
console.log(lastval);

二种:冒泡排序

我用的是js原生提供的sort方法,数组两两来对比

var sortListData = [
    {
        name:'11',
        age:90
    },
    {
        name:'11',
        age:10
    },
    {
        name:'11',
        age:15
    },
]
function sortr(a,b){
    return a.age-b.age;
}
sortListData.sort(sortr);
console.log(sortListData);

目前项目中用到的是第二种方法,这两种哪个更优,哪个更快,求以后解答...

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消