/* 首先从序列中选取一个数作为基准数 将比这个数大的数全部放到它的右边,把小于或者等于它的数全部放到它的左边 (一次快排 partition) 然后分别对基准的左右两边重复以上的操作,直到数组完全排序 */ function quickSort (arr) { if (arr.length < 2) { return arr; } var left = []; var right = []; var voit = arr[0]; for (let index = 1; index < arr.length; index++) { if (arr[index] > voit) { right.push(arr[index]); }else{ left.push(arr[index]); } } return quickSort(left).concat([voit],quickSort(right)); } var arr = [4, 7, 3, 5, 6, 2, 8, 1]; console.log(quickSort(arr));