跳到主要内容

快速排序

const Arr = [9, 11, 1, 5, 4, 3, 7, 6, 2, 6, 8];

function quickSort(Arr) {
if (Arr.length <= 1) return Arr;
let index = Math.floor(Arr.length / 2); // 取中间位置
let pivot = Arr.splice(index, 1)[0]; // 取中间值

let left = [],
right = [];

for (let i = 0, j = Arr.length; i < j; i++) {
if (Arr[i] < pivot) left.push(Arr[i]);
//左为小
else right.push(Arr[i]); //右为大
}

// 递归执行
return quickSort(left).concat([pivot], quickSort(right));
}

console.log(quickSort(Arr));