1、先从数列中取出一个数作为基准数
2、分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边
3、再对左右区间重复第二步,直到各区间只有一个数
var arr = [4,1,6,9,3,2,8,7];
function quickSort(arr) {
if (arr == null || arr.length == 0) return [];
//选班长
var leader = arr[0];
//小的站左边,大的站右边
var left = [];
var right = [];
for (var i = 1 ; i < arr.length ; i ++) {
if (arr[i] < leader) left.push(arr[i]);
else right.push(arr[i]);
}
left = quickSort(left); //把班长左边排好
right = quickSort(right); //把班长右边排好
left.push(leader);
return left.concat(right);
}
console.log(quickSort(arr));