经典快速排序总是指定数组或者某部分的最后一个元素作为基准值,随机快速排序指定数组或者某一部分中的随机值作为基准值。
function quick(arr){
if(arr.length == 0) return [];
var left = []
var right = []
var base = arr[0] // 基准
for (var i = 1;i < arr.length; i++ ){
if (arr[i] < base){
left.push(arr[i])
} else {
right.push(arr[i])
}
}
// 左右两侧再次递归调用 quick
return quick(left).concat(base, quick(right))
}
var arr = [2,5,8,4,7,0]
console.log(quick(arr))
// (6) [0, 2, 4, 5, 7, 8]