快速排序(QuickSort)的JavaScript实现
2019-02-14 本文已影响1人
stone呀
let arr = [1, 52, 3, 6, 13, 23, 45, 9, 8, 76, 73, 84];
function quicksort(arr) {
if(arr.length <= 1) {
return arr;
}
// 取中心元素下标
const poivtIndex = Math.floor(arr.length / 2);
// 在数组中删除这个元素,并取出这个元素
const poivtElement = arr.splice(poivtIndex, 1)[0];
// 初始化left 和 right 数组
let left = [];
let right = [];
for(let i = 0; i < arr.length; i++) {
if(arr[i] <= poivtElement) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
// 递归调用
return quicksort(left).concat([poivtElement], quicksort(right));
}
const result = quicksort(arr)
console.log(result) // [ 1, 3, 6, 8, 9, 13, 23, 45, 52, 73, 76, 84 ]