在big-O表示法是O((log n)^k) = O(log n)
,其中k
是一些常数(例如循环的对数数),是吗?
我的教授告诉我,这种说法是正确的,但是他说这将在课程后期证明。我想知道你们中是否有人能证明其有效性,或者有一个链接我可以确认是否属实。
答案 0 :(得分:7)
(1)确实O(log(n ^ k))= O(log n)。
(2)O(log ^ k(n))(也写成O((log n)^ k))= O(log n)是错误的。
观察:(1)已被nmjohn证实。
练习:证明(2)。 (提示:f(n)= log ^ 2 n是O(log ^ 2 n)。是O(log n)吗?什么是足够大的常数c,使得对于大于n0的所有n,c log n> log ^ 2 n?)
编辑:
在相关的说明中,任何发现此问题有用和/或有趣的人都应该对新的“计算机科学”StackExchange网站表现出一些喜爱。这是一个链接。去把这个新地方变为现实!
答案 1 :(得分:5)
你确定他不是指O(log n ^ k),因为它等于O(k * log n)= k * O(log n)= O(log n)。
答案 2 :(得分:-1)
O(log n )是一类函数。您无法在其上执行^ k 等计算。因此,术语O(log n )^ k 对我来说甚至看起来都不合理。