快速排序思想,整個排序過程只需3步:
1.找一個基准點。
2.建立兩個數組,分別放在左右兩邊。
3.利用遞歸,進行下一次的比較。
function sortarr(arr){ //instanceof Array判斷 取反的arr是否是數組 if(!arr instanceof Array){ return; } //判斷arr的個數是否小於1 if(arr<=1){ return arr; } // 獲取中間數的下標 var num =Math.floor(arr.length/2); // 獲取中間值 var value =arr.splice(num,1); // 小於中間數 var left =[ ]; // 大於中間數 var right =[ ]; for(var i=0;i<arr.length;i++ ){ if(arr[i] < value){ left.push(arr[i]); }else{ right.push(arr[i]); } } // 將左右容器遞歸比較,並連接起來 return sortarr(left).concat(value,sortarr(right)); } console.log(sortarr([20,40,21,44,21,50,12,6,8,10,80,33])); //6, 8, 10, 12, 20, 21, 21, 33, 40, 44, 50, 80