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

📅  最后修改于: 2021-09-26 04:27:26             🧑  作者: 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 使得对于所有足够大的 n 值,f(n) 的绝对值至多是 M 乘以 g 的绝对值,那么写 f(n) = O(g(n)) (n)。也就是说,f(n) = O(g(n)) 当且仅当存在正实数 M 和实数 n0 使得 f(n)≤M(g(n)),对于所有 n≥ n0.

正常_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 提供
这个问题的测验