“比较排序提供模型,分治法提供结构,递归式给出成本。归并的顺序访问适合外存模型:内存同时缓冲多段并作多路合并,可减少块传输轮数。它也用于稳定排序、逆序对计数与并行流合并。”
形式陈述 ​
递推关系用序列先前项约束后续项。阶数为
给定足以启动递推的初始值
直觉
递推不是单独的一条等式,而是生成序列的局部规则加足够初始条件。阶数表示确定下一项需要追溯多长历史;初值不足会留下多解,初值与规则冲突则可能无解。递推适合揭示对象如何由更小对象构成,闭式则适合直接读取增长,两者各有用途。
例子与边界
Fibonacci 递推
规则
推论与应用
序列配合局部函数关系形成递推,线性递推可用迭代展开、特征根、矩阵或普通生成函数处理。分治算法的运行时间常使用主定理估计,组合对象的根分解和动态规划状态转移也会先自然产生递推,再通过界估计或闭式求解理解规模增长;方法能否使用取决于线性、齐次性和系数结构。
参考资料
- Ronald L. Graham, Donald E. Knuth, and Oren Patashnik, Concrete Mathematics, 2nd ed., Addison-Wesley, 1994,Ch. 1。
- Richard P. Stanley, Enumerative Combinatorics, Vol. 1, 2nd ed., Cambridge University Press, 2011,§§1.1–1.2。