算法第二章实践作业

算法思路:
选一个基准 p,划分数组:左边 ≤ p,右边 > p。
若 p 最终位置为 i,左半部分加 p 的个数为 left = i - len + 1;
若 k == left,返回 A[i];
若 k < left,递归左半部分找第 k 小;
若 k > left,递归右半部分找第 k - left 小。
时间复杂度:
最好:每次划分均匀,T(n)=T(n/2)+O(n)=O(n);
最坏:每次 p 都是最大或最小,T(n)=T(n-1)+O(n)=O(n^2)。
体会:
分治法的关键是“划分”和“递归”。划分越均衡,效率越高;p 选得不好会退化到最坏情况。因此分治法中,子问题划分方式和最坏情况分析非常重要。

posted @ 2026-10-13 19:27  1003231  阅读(5)  评论(0)    收藏  举报