我一直在接受我所接受的课程的任务。 有问题的作业:
使用归纳来证明当n> = 2时精确幂为2时,解的 复发:
T(n) = {2 if n = 2,
2T(n/2)+n if n =2^k with k > 1 }
is T(n) = nlog(n)
注意:赋值中的对数具有基数2.
这里的基本情况很明显,当n = 2时,我们得到2 = 2log(2) 但是,我坚持这一步,我不知道如何解决这个问题。
答案 0 :(得分:0)
步骤。让我们假设对于所有m< = k,该语句适用于2 ^ m,让我们将其显示为2 ^ {k + 1}。
然后,T(2 ^ {k + 1})= 2T(2 ^ k)+ 2 ^ {k + 1}。
通过归纳假设T(2 ^ k)= 2 ^ k * log(2 ^ k),即T(2 ^ k)= k * 2 ^ k(因为对数在此具有基数2)。< / p>
因此,T(2 ^ {k + 1})= 2 * k * 2 ^ k + 2 ^ {k + 1} = 2 ^ {k + 1} *(k + 1),可写如2 ^ {k + 1} * log(2 ^ {k + 1}),完成证明。