分治法学习总结
分治算法(快速选择)找第 k 小
借鉴快速排序划分思想。选取基准 pivot 将数组划分,左侧≤pivot,右侧≥pivot,得到基准所在下标 pos。
若基准正好是第 k 小,直接返回;
若 k 小,只递归左半区间找第 k 小;
若 k 大,只递归右半区间,找右区间的第k‑rank小。
只递归其中一侧子区间,无需处理两边。
时间复杂度
最好时间复杂度:(O(n))
最坏时间复杂度:(O(n^2))
对分治法的体会思考
分治核心:分解子问题、求解子问题、合并子问题,将大问题拆解为结构相同、规模更小的独立子问题。
快速选择是特殊分治:不需要求解全部子问题,剪枝舍弃无答案分支,也不需要合并步骤,直接由子问题得到结果。
算法效率高度依赖划分质量,划分均衡则效率高,划分倾斜会发生性能退化,可通过随机化优化。相比暴力、完整排序,分治通过缩小问题规模减少冗余计算,但递归会带来栈空间开销。
posted on 2026-10-10 21:19 Cynthia1912 阅读(7) 评论(0) 收藏 举报
浙公网安备 33010602011771号