(1)在數據集之中,選擇一個元素作為”基準”。
(2)所有小于”基準”的元素,都移到”基準”的左邊;所有大于”基準”的元素,都移到”基準”的右邊。
(3)對”基準”左邊和右邊的兩個子集,不斷重復第一步和第二步,直到所有子集只剩下一個元素為止。
function sort(arr) {
if (arr.length < 2) {
return arr;
} else {
var arrLeft = [];
var arrRight = [];
var baseIndex = Math.floor(arr.length/2);
var base = arr.splice(baseIndex,1)[0];
for (var i=0; i<arr.length; i++) {
if (arr[i] < base) {
arrLeft.push(arr[i]);
} else {
arrRight.push(arr[i]);
}
}
}
return sort(arrLeft).concat([base],sort(arrRight));
}