第二周作业
1.请用自然语言描述找第k小的数的分治算法:
找第 k 小的数的分治算法:选一个基准元素,将数组分为小于、等于、大于基准的三部分。若小于基准的部分长度≥k,就在该部分找;若小于加等于的长度≥k,基准就是答案;否则在大于部分找第 k - 前两部分长度小的数。
2.分析该算法的最好时间复杂度和最坏时间复杂度:
最好时间复杂度为 O (n),此时每次划分能将数组分成大致相等的两部分;最坏时间复杂度为 O (n²),当每次划分都极不平衡,如基准总是最大或最小元素时出现。
3.结合本章的学习,谈谈你对分治法的体会和思考
分治法通过将大问题拆解为相似子问题,递归求解后合并结果,能简化复杂问题。其效率依赖划分策略,平衡的划分可显著提升性能,体现了 “分而治之” 的高效解题思路。

浙公网安备 33010602011771号