校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 算法 > 高级排序(快排、堆排等)
题目

快速排序的基本思路是什么?

解答

【解析】

第一步:选取一个数作为基准(理论上可以随便选取);
第二步:分区,比基准值小的放左边,大的放右边,基准值放在两个分区之间;
第三步:进行左边分区递归,以及右边分区递归

const quicksort = arr = > {
const pivotIndex = Math.floor(arr.length / 2); // 选取基准位置,尽量考虑随机性
const pivot = arr.splice(pivotIndex, 1)[0];
const left = [];
const right = [];
arr.forEach((item, idx) => {
if (arr[idx] < pivot) {
left.push(arr[idx]);
} else {
right.push(arr[idx]);
}
});
return quickSort(left).concat([pivot], quickSort(right)); // 连接左数组、基数组和右数组
};
C 0条回复 评论

帖子还没人回复快来抢沙发