【发布时间】:2010-12-01 16:37:50
【问题描述】:
我很想知道如何计算递归函数的时间和空间复杂度,比如置换、斐波那契(描述 here)
一般来说,我们可以在许多地方进行递归,而不仅仅是排列或递归,所以我正在寻找通常遵循的方法来计算 tmie ans 空间复杂度
谢谢
【问题讨论】:
标签: algorithm complexity-theory
我很想知道如何计算递归函数的时间和空间复杂度,比如置换、斐波那契(描述 here)
一般来说,我们可以在许多地方进行递归,而不仅仅是排列或递归,所以我正在寻找通常遵循的方法来计算 tmie ans 空间复杂度
谢谢
【问题讨论】:
标签: algorithm complexity-theory
时间复杂度和空间复杂度是表征算法性能的两件事。如今,由于空间相对便宜,人们最关心的是时间复杂度,而时间复杂度大多用递推关系来表示。
考虑二分查找算法(Search for an element in an array):每次选择中间元素(mid)并与要查找的元素(x)进行比较。如果 (mid > x),则搜索下子数组,否则搜索上子数组。如果一个数组有n个元素,令T(n)代表算法的时间复杂度,那么 T(n) = T(n/2) + c,其中 c 是一个常数。在给定的边界条件下,我们可以求解 T(n),在这种情况下,它是 T(n) = log(n),其中 T(1) = 1。
【讨论】: