分治
基本思想
分治法的基本思想是將一個規模爲n的問題分解爲k個規模較小的子問題,這些子問題互相獨立且與原問題相同,遞歸或迭代地解這些子問題,然後將各子問題的解綜合得到原問題的解。
影響算法複雜度的因素
- 子問題的個數
- 子問題合併的工作量
改進分治算法有兩個途徑:
- 減少子問題的個數
- 增加預處理
經典案例
1 二分檢索
設計思想
僞碼
2 二分歸併
設計思想
僞碼
3 漢諾塔
設計思想
僞碼
4 快速排序
設計思想
僞碼
實例
5 快速傅里葉變換(信號平滑處理)
問題描述
在卷積計算中有多項式求值的問題,使用FFT(快速傅里葉算法,提高其效率)
關於卷積:
設計&分析
減少子問題個數案例:大數相乘
設計思想
參考材料
mooc算法分析與設計