📜  门| GATE-CS-2000 |第40章

📅  最后修改于: 2021-06-29 23:18:54             🧑  作者: Mango

考虑以下功能
\\ f(n) = 3n^{\sqrt{n}}\\ g(n) = 2^{\sqrt{n}log_{2}n}\\ h(n) = n!\\

以下内容哪些是对的?
(A) h(n)为O(f(n))

(B) h(n)为O(g(n))
(C) g(n)不是O(f(n))
(D) f(n)为O(g(n))答案: (D)
说明:大哦表示法:

令f和g为实数定义的两个函数。如果存在一个正常数M,则写f(n)= O(g(n)),使得对于所有足够大的n值,f(n)的绝对值最多为M乘以g的绝对值(n)。也就是说,当且仅当存在一个正实数M和一个实数n0使得f(n)≤M(g(n))时,对于所有n≥,f(n)= O(g(n)) n0。

nirmal_40

在Big-oh表示法中,我们仅通过考虑较大的n值在两个函数之间进行比较。为了解决这样的问题,我们可以取更大的n值,然后比较不同函数的值。

f(n)= 3(n ^ 32)= 3 *(2 ^ 10)^ 32 = 3 * 2 ^ 320

g(n)= 2 ^ 320

h(n)= 1024!

因此,函数之间的关系可以是:

1.f(n)和g(n)具有相同的阶数,因此f(n)为O(g(n))且g(n)= O(f(n))。因此,选项C是错误的。
2.h(n)是n!比f(n)和g(n)高。因此选项A和B是错误的。

参见http://geeksquiz.com/algorithms-analysis-of-algorithms-question-22/

该解决方案由Nirmal Bharadwaj提供
这个问题的测验