原则:
1. 先取出一个数作为“基准”。
2. 分区过程:将比这个“基准”大的数全放到“基准”的右边,小于或等于“基准”的数全放到“基准”的左边。
3. 再对左右区间重复1,2步,直到各区间只有一个数。
实现:
function quickSort (arr) { if (arr.length <= 1) return arr; const newArr = [...arr]; const cutPointIndex = Math.floor(newArr.length / 2); const cutPoint = newArr.splice(cutPointIndex, 1)[0]; let left = []; let right = []; newArr.forEach((val)=>{ if (val > cutPoint) { right.push(val) } else { left.push(val) } }) return [...quickSort(left), cutPoint, ...quickSort(right)] }