(1/2)^ n的大O类

时间:2016-10-02 21:39:49

标签: algorithm big-o asymptotic-complexity

函数(1/2)^ n属于哪个大O类?

在纯粹的数学基础上,似乎我们必须将它放入O(1),因为对于任何足够大的n,1/2 ^ n接近0。

然而,当谈到渐近分析和大O时,我们倾向于做很多挥手,并且还会回顾公式。 1/2在技术上是一个常数,所以看起来会落入O(c ^ n)。

我倾向于O(c ^ n)因为说"半操作"在谈论算法时毫无意义。当输入变大时,什么算法需要一半的时间?充其量,我看到数学公式(1/2)^ n指的是一些时间常数的一半 - 比方说,一分钟。所以(30秒)^ n变成一个巨大的数字,并且该函数明显属于O(c ^ n)。

一点帮助?

2 个答案:

答案 0 :(得分:2)

函数 0.5 n O(1),还有 O(c)对于任何< em> c> 0 ( O(0),因为 0.5 n &gt; 0 名词的)。

它也是 o(1)(注意little o)。

对于任何常量 c ,它不是Θ(c)。如果 c = 0 ,则问题是 0.5 n &gt; c 任何 n 。对于任何 c&gt; 0 lim n→∞ 0.5 n &lt; ç

就我个人而言,我认为它是Θ(0.5 n 是这里最强大,最准确的陈述。

答案 1 :(得分:0)

你不能写一个O(1/2 ^ N)算法,因为当N接近无穷大时,运行时将变为无穷小,这在物理上是不可能的。你不能有一个&#34;操作&#34;。