如果每个是常数,则有一些Ç 米一个X,使得∀ Ç 我:Ç 我 ≤ Ç 中号一个X。如此明确Σ Ç 我 ˚F (我)≤ Σ Ç 米一个X ˚F (我)= c ^ 米一个X Σ ˚F (我)= Ö (Σ ˚F (我)cicmax∀ci:ci≤cmax同样的想法的小O操作。
∑cif(i)≤∑cmaxf(i)=cmax∑f(i)=O(∑f(i))
我认为这里的问题是。它的直径:(1 / Ñ )(因为没有ε使得∀ 我:1 /我> ε),所以总体总和将Ñ ø (1 / Ñ )= Ô (1 )。每个项均为O (1 ),这意味着总和为O (n )1/i≠Θ(1)o(1/n)ϵ∀i:1/i>ϵno(1/n)=o(1)O(1)O(n)。因此,无法从此方法找到严格的界限。
我认为您的问题是:
- 通过对每个项的小o和对每个项的大o乘以n来界定是可接受的吗?(答案:是)∑nif(i)n
- 有没有更好的方法?(答案:据我所知。)
希望其他人可以更清楚地回答#2。
编辑:再次查看您的问题,我想您是在问
?∑niΘ(f(n))=Θ(nf(n))
答案是肯定的。但是,在这种情况下,每个项都不是,因此这种方法会分崩离析。Θ
编辑2:您说“考虑,那么就没有c m a x ”。毫无疑问是真的。如果你说ç 我是一个不恒定的功能我,那么,根据定义,非恒定的。ci=icmaxcii
请注意,如果以此方式定义,则不是Θ (i ),而是Θ (i 2)。事实上,如果你定义“不变”是指“任何功能我 ”,那么任何两个功能我由一个“常量”不同!ciiΘ(i)Θ(i2)ii
也许这是考虑它的一个更简单的方法:我们有序列。这个序列中最小的术语是什么?好吧,这将取决于n。因此,我们不能将这些术语视为常数。1,12,…,1nn
(计算机科学家通常对big-O更为熟悉,因此询问是否具有恒定的最大项可能更直观。)1,…,n
为了提供您的证明:令为f (i )在1 ,… ,n范围内的最小值。然后Ñ Σ我 ˚F (我)≥ Ñ Σ我 ˚F (我中号我Ñ)= Ñ ˚F (我中号我Ñ)= Ñ Ö (˚F (Ñ ))f(imin)f(i)1,…,n
∑inf(i)≥∑inf(imin)=nf(imin)=no(f(n))
可以为上限做出类似的证明。
Hn=o(n)Hn=Θ(logn)HnnlognΘ(logn)o(n)