数组排序
//方法1 // 数组中前一项跟后一项作比较,如果前边的比后边的大,则前后换一下位置 function px1(ary){ var len=ary.length,temp; if(len<=1){ return ary; } for(var i=0;i<len;i++){ for(var j=i+1;j<len;j++){ if(ary[i]>ary[j]){ temp=ary[i]; ary[i]=ary[j]; ary[j]=temp; } } } return ary; } var ary1=[3,1,8,6,9,0,12]; console.log(px1(ary1)); //方法2 取出数组的中间值 // 将数组中的每一项跟中间值midVal作比较 // 比midVal小的放left数组中,比midVal大的放到right数组中,以此循环 然后再将数组拼接 function px2(ary){ if(ary.length <= 1){ return ary; } var midIndex=Math.floor(ary.length/2), midVal=ary.splice(midIndex,1), left=[], right=[]; for(var i=0;i<ary.length;i++){ if(ary[i] < midVal){ left.push(ary[i]); }else{ right.push(ary[i]); } } return px2(left).concat(midVal,px2(right)); } var ary2=[3,1,8,6,9,0,12]; console.log(px2(ary2));