Py算法与数据结构

14 快速排序

双指针分区、枢轴、退化与短侧优先

本节 12 题。先独立给出结论和理由,再对照解析;新增题与此前题目统一编号。涉及标签时,标签只表示记录身份。
第 01 题

问题 1

快速排序重要工作在递归前还是递归后?

第 02 题

问题 2

有重复键时划分两侧应理解为严格小于、大于吗?

第 03 题

问题 3

闭区间递归的正确终止条件是什么?

第 04 题

问题 4

为什么递归区间必须排除枢轴位置 p?

第 05 题

问题 5

三数取中对 [15,21,8] 应选择哪个值?

第 06 题

问题 6

末尾枢轴处理升序输入为什么容易退化?

第 07 题

问题 7

三数取中是否保证任何输入都 O(n log n)?

第 08 题

问题 8

双指针遇到两个都等于 pivot 的项时,交换后为何要移动指针?

第 09 题

问题 9

Python a[-1] 合法,是否可以省略左边界检查?

第 10 题

问题 10

怎样把迭代快排的待处理栈控制在对数级?

第 11 题

问题 11

本教材原地快排是稳定排序吗?

第 12 题

问题 12

cutoff=8 的意义是什么?能当作通用最优值吗?