递归算法:直接或间接地调用自身的算法。递归算法需要有明确的终止条件,否则会导致无限递归。例如计算阶乘的函数 n! = n * (n - 1) * (n - 2) *... * 1,可以用递归实现,factorial(n) = n * factorial(n - 1),当 n = 0 或 n = 1 时终止递归,返回 1。
迭代法:迭代是数值分析中通过从一个初始估计出发寻找一系列近似解来解决问题(一般是解方程或者方程组)的过程,为实现这一过程所使用的方法统称为迭代法。例如求解方程 x = cos(x) 的根,可以使用迭代法,先给定一个初始值 x0,然后通过 x(n+1) = cos(xn) 不断迭代,直到满足一定的精度要求。
分支限界法:类似于回溯法,也是一种在问题的解空间树 T 上搜索问题解的算法。分支限界法与回溯法的求解目标不同,回溯法的求解目标是找出 T 中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。例如在解决 0-1 背包问题的最优解时,可以使用分支限界法进行求解。