Algorithm 为什么我们可以假设T(n)=2T(n/2)+;θ(1),n是2的幂?

Algorithm 为什么我们可以假设T(n)=2T(n/2)+;θ(1),n是2的幂?,algorithm,recurrence,Algorithm,Recurrence,最近我对算法很感兴趣,我一直在看麻省理工学院出版的一系列视频。但是我遇到了一些关于复发的问题 连接的链接是视频的来源。在07:10,教授提到在T(n)=2T(n/2)+θ(1)中使用T(n/2)是可以的,因为有一个定理,尽管使用T(n/2的底部)或T(n/2的上限)更准确 这个定理到底是什么?实际上我有点困惑,因为n/2可能无法为某些n生成基本案例输入 e、 g.某些初始输入不是2的幂 好问题。我相信你在那节课上学到了关于Big-O的知识,所以我不会详细说明。(我的解释将使用O(N),为了便于

最近我对算法很感兴趣,我一直在看麻省理工学院出版的一系列视频。但是我遇到了一些关于复发的问题

连接的链接是视频的来源。在07:10,教授提到在T(n)=2T(n/2)+θ(1)中使用
T(n/2)是可以的,因为有一个定理,尽管使用T(n/2的底部)或
T(n/2的上限)
更准确

这个定理到底是什么?实际上我有点困惑,因为
n/2
可能无法为某些n生成基本案例输入


e、 g.某些初始输入不是2的

好问题。我相信你在那节课上学到了关于Big-O的知识,所以我不会详细说明。(我的解释将使用O(N),为了便于解释,可以假设O(N)与θ(N)相同,但它们不同!)

Big-O(和θ)的重要部分是显著性。例如,O(N)总是比O(1)更重要,即使它是99999*O(1)对O(N)

所以,你的教授想说的是,当你不使用n/2时,你不需要将它降低或降低,因为你去掉的额外部分并不重要。您要处理的是Big-O场景中的运行时,它不关心细节。我们假设N是巨大的,而你花在地板或天花板N上的额外时间是无法与之相比的


基本上,对于Big-O,您需要全面的概括,谢天谢地,这意味着您可以假设n是2的幂

建议您将标题改为更具体的名称,例如“为什么我们可以假设T(n)=2T(n/2)+θ(1),n是2的幂?”重要的见解是2^ceil(log_2(n))=O(n)。等式的左侧最多为2n,因此您可以随时填充输入,使其大小为2^k