快速排序和sort排序(冒泡排序)整理
標(biāo)簽:
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);
目前项目中用到的是第二种方法,这两种哪个更优,哪个更快,求以后解答...
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦