第二周作業
1.請用自然語言描述找第k小的數的分治算法:
找第 k 小的數的分治算法:選一個基準元素,將數組分為小于、等于、大于基準的三部分。若小于基準的部分長度≥k,就在該部分找;若小于加等于的長度≥k,基準就是答案;否則在大于部分找第 k - 前兩部分長度小的數。
2.分析該算法的最好時間復雜度和最壞時間復雜度:
最好時間復雜度為 O (n),此時每次劃分能將數組分成大致相等的兩部分;最壞時間復雜度為 O (n2),當每次劃分都極不平衡,如基準總是最大或最小元素時出現。
3.結合本章的學習,談談你對分治法的體會和思考
分治法通過將大問題拆解為相似子問題,遞歸求解后合并結果,能簡化復雜問題。其效率依賴劃分策略,平衡的劃分可顯著提升性能,體現了 “分而治之” 的高效解題思路。

浙公網安備 33010602011771號