给定的图显示了递归函数A(n)的流程图。假定除递归调用外,所有语句的时间复杂度均为O(1)。如果此函数的最坏情况时间复杂度为O( nα ),则α的最小可能值(精确到小数点后两位)为__________
(A) 2.2至2.4
(B) 3.2至3.4
(C) 0至1.8
(D) 1答案: (A)
说明:递归关系的时间复杂度是最坏的情况下的时间复杂度。首先,我们必须从流程图中找出最坏情况下的函数调用次数。
最糟糕的情况是,所有条件(菱形框)都朝向具有最长根的非返回路径。在最长的路径中,我们有5个函数调用。
因此,递归关系将是–
A(n)= 5A(n / 2)+ O(1)(O(1),因为其余语句的复杂度为O(1)。)
使用Master定理解决此递归关系–
a = 5,b = 2,f(n)= O(1),n log b a = n log 2 5 (情况1主定理)
A(n)= n log b a
对数2 5的值是2.3219,因此,最佳选择是选项a
这种解释是由Parul Sharma贡献的。
这个问题的测验