Cynthia1912

导航

分治法学习总结

分治算法(快速选择)找第 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)    收藏  举报