1. 程式人生 > >數組排序-----2.快速排序(遞歸)

數組排序-----2.快速排序(遞歸)

比較 temp quick func 個數 ole length int emp

/*
* 先去找數組中間一項,把這一項拿出來; 用拿出之後的數組中的每一項跟 拿出的這一項比較;比這項大的放到一個數組; 小的放到另外一個數組
* 接著對著兩個數組做上述同樣的操作;
* */

function quickSort(ary) {
if(ary.length <=1){
return ary
};
var n = parseInt(ary.length/2);
var cur = ary.splice(n,1)[0];
var left = [],right = [];
for(var i = 0; i < ary.length; i++){
if(ary[i] < cur){
left.push(ary[i])
}else {
right.push(ary[i])
}
}
return quickSort(left).concat(cur,quickSort(right));
}

var ary1 = [5,3,7,2,8,4,2];
var temp = quickSort(ary1);
console.log(temp);

數組排序-----2.快速排序(遞歸)