传统的快排都是在数组中,随机选择数组中一个元素(有的会直接选中间),然后从左边寻找第一个比它大的,从右边寻找第一个比它小的,两者互换位置。但是JS的灵活性提供了另一种方法,这种方法更好理解。
function quickSort(arr) {
var length = arr.length;
if(length <= 1) {
return arr;
}
var mid = parseInt(length / 2);
var lower = [], equal = [], greater = [];
for(var i = 0; i < length; i++) {
if(arr[i] < arr[mid]) {
lower.push(arr[i]);
} else if(arr[i] === arr[mid]) {
equal.push(arr[i]);
} else {
greater.push(arr[i]);
}
}
return quickSort(lower).concat(equal).concat(quickSort(greater))
}