一个递归算法的时间复杂度

时间:2016-01-11 07:39:28

标签: algorithm time-complexity

这里我们有一个算法

T(n) = n-1 + T(i-1) + T(n-i)
T(1) = 1

如何计算它的时间复杂度? 我介于1和n之间

2 个答案:

答案 0 :(得分:1)

我可以将其识别为快速排序算法(随机快速排序)。 我确信这个问题不知何故错过了求和部分。

好!你可以在这里使用替换方法..检查O(n^2)。你会发现O(n^2)是最糟糕的时间复杂性。

平均情况有点棘手。然后,枢轴可以是从1到n的任何元素。然后分析它。您也可以在此处使用T(n)=O(nlogn)替代素。

答案 1 :(得分:0)

我认为我们应该像这样解决它

如果i = 2那么我们有

T(n) = n + T(n-2) = Theta(n^2)

如果i = n / 2那么我们有

T(n) = n-1 + T(n/2 -1) + T(n/2) = Theta(n.logn)

然后我们有上限O(n ^ 2),算法按O(n ^ 2)的顺序