Table of Contents
递归算法是计算机科学中的一个基本概念,它们通过将其细分为较小,相似的子问题来解决问题. 了解它们的时间复杂性有助于评价它们的效率和性能.
什么是时间复杂?
时间复杂度衡量一个算法的运行时间如何随输入大小而增加,它用大O注解表示,它描述算法的生长速率的上方界限.
分析递归算法
递归算法往往涉及用较小的输入调用相同的函数来解决一个问题。 要分析它们的时间复杂性,就必须理解重现关系,它根据较小的子问题表达总时间。
通用计算方法
解决重现关系主要有两种方法:
- 替代方法:[] 猜测解法并通过诱导验证.
- 折返树法:[ 视复发为树,以总和每关成本.
例如,重现 T(n) = 2T(n/2) + n 描述一个分割和征服算法。解决此算法会产生 O(n log n) 的时间复杂性 。