Skip to main content

01E 迭代与递归

计算任意n个整数之和

迭代法 Θ(n)

减而治之

将其划分为两个子问题:其一平凡,另一规模缩减 O(n)

递归跟踪

递归跟踪估算复杂度,为线性递归,O(n)

递推方程

递推方程估算复杂度,递归基, 规模单调减:
T(n) = T(n-1) + O(1) T(0) = O(1)

数组倒置

递归版, 减而治之

迭代原始版, 精简版

分而治之(Divide-and-Conquer)

大问题将其划分为若干子问题

二分递归:数组求和

递归实例个数 -》 O(n)

递推方程 -》O(n)

大师定理

分治策略对应的递推式,通常(尽管不总是)形如: T(n) = a * T(n/b) + O(f(n)) (原问题被分为a个规模均为n/b的子任务;任务的划分、解的合并耗时f(n))

可以用大师定理快速推算递归复杂度。

master theorem