考虑一个递归算法列表和一个递归关系列表,如下所示。每个递归关系仅对应一个算法,并用于推导该算法的时间复杂度。
Recursive Algorithm | Recurrence Relation | ||
---|---|---|---|
P. | Binary search | I. | T(n) = T(n-k) + T(k) + cn |
Q. | Merge sort | II. | T(n) = 2T(n-1) + 1 |
R. | Quick sort | III. | T(n) = 2T(n/2) + cn |
S. | Tower of Hanoi | IV. | T(n) = T(n/2) + 1 |
(A) P-II,Q-III,R-IV,SI
(B) P-IV,Q-III,RI,S-II
(C) P-III,Q-II,R-IV,SI
(D) P-IV,Q-II,RI,S-III答案: (B)
说明:这些是一些标准算法的示例,其
合并排序:T(n)= 2T(n / 2)+Θ(n)。在情况2中,因为c为1,Log b a]也为1,解为Θ(n Logn) //时间复杂度可以使用主方法进行评估
二进制搜索:T(n)= T(n / 2)+Θ(1)。同样在情况2中,因为c为0,Log b a也为0,解为Θ(Logn) //时间复杂度可以使用主方法进行评估
快速排序:QuickSort花费的时间通常可以表示为T(n)= T(k)+ T(nk-1)+ (n)
河内塔:T(n)= 2T(n-1)+1
阅读更多信息:https://www.geeksforgeeks.org/analysis-algorithm-set-4-master-method-solving-recurrences/
这个问题的测验