分治算法导论

分治算法导论

https://www.bilibili.com/video/BV1aN411d7Yi?p=8 算法设计与分析 - 北航童咏昕教授

思路

将大问题分解为小问题:小问题更容易看清本质,也更容易求解。

得到的一般流程如下:

复杂度

递归树法

树节点表示“本层复杂度”(不含下一层递归调用),子树表示下一层调用。因此,本层总复杂度可理解为:

本层节点的数值 + 子树所有节点数值之和

从初始规模 n 开始,一边每层除 4,一边每层除 4/3。除法次数更多的一侧决定递归树深度。这里深度可写为:max(log4(n), log4/3(n)) = log4/3(n)

代入法

https://www.bilibili.com/video/BV1aN411d7Yi/?p=9&spm_id_from=pageDriver&vd_source=a9a24992f7f570a16d5a331e8fed9f0d