Merge排序算法在最坏情况下的运行时间由以下递归关系描述:
⌈ 1 , if n = 1
T(n) = | 2T(n/2)+ n , otherwise
⌊
给定的递归方程式计算得出–
(A) 2 k T(n / 2 k )+ kn
(B) 2 k T(n k / 2)+ kn
(C) nk T(n / 2 k )
(D) T(n / 2 k )+ kn答案: (A)
解释:
T(n) = 2T (n/2) + n
= 21 T(n/21) + 1.n [ k = 1]
= 2k-1 T(n/2k-1) + (k-1)n
= 2k-1 (2T(n/2k + n/2k-1) + (k-1)n
= 2k T(n/2k) + kn
选项(A)是正确的。
这个问题的测验