第二章 复杂度分析
迭代与递归
「迭代 iteration」是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某段代码,直到这个条件不再满足
for 循环的代码更加紧凑,while 循环更加灵活
每一次嵌套都是一次“升维”,有关时间复杂度
「递归 recursion」是一种算法策略,通过函数调用自身来解决问题
1 | def recur(n:int) -> int: |
1 | def hanoi(n, source, target, auxiliary): |
迭代:自下而上,不断重复
递归:自上而下,划分为更小的子问题