继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

qq_RR_3
关注TA
已关注
手记 8
粉丝 2
获赞 4

在项目中遇到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);

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

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP