我有兴趣知道如何计算递归函数的时间和空间复杂度,如置换,斐波那契(描述here)
一般情况下,我们可以在许多地方进行递归,而不仅仅是在permutaion或递归,所以我正在寻找通常遵循的方法来计算tmie ans空间复杂度
谢谢
答案 0 :(得分:4)
答案 1 :(得分:2)
时间复杂度和空间复杂性是表征算法性能的两个因素。如今,由于空间相对便宜,人们主要关注时间复杂性,时间复杂性主要表现为递归关系。
考虑二元搜索算法(在数组中搜索元素):每次选择中间元素(mid)并与要搜索的元素(x)进行比较。如果(mid> x),搜索较低的子数组,否则搜索较高的子数组。如果数组中有n个元素,并且让T(n)表示算法的时间复杂度,那么 T(n)= T(n / 2)+ c,其中c是常数。在给定的边界条件下,我们可以求解T(n),在这种情况下,它将是T(n)= log(n),其中T(1)= 1。