函数渐近比较

时间:2018-05-24 18:17:50

标签: time-complexity big-o computer-science asymptotic-complexity

我有两个功能:

 f(n) = n*log(n)
 g(n) = n^(1.1) * log(log(log(n)))

我想知道这些功能如何相互比较。据我所知,f(n)总是比g(n)增长得快。换句话说:f(n)inω(g(n))

我假设日志基数为10,但它确实无关紧要,因为可以使用任何基数。我尝试了n和c的许多组合,因为以下关系似乎成立:

 f(n) ≥ c g(n) ≥ 0

似乎对我有用的一个组合如下:

 c = 0
 n = 10^10

在这种情况下:

f(10^10) = (10^10) log(10^10) = (10^10)*(10) = 10^11
c*g(n)   = 0 * (10^10)^(1.1) * log(log(log(10^10))
         = 0 * (10^11) * log(log(10))
         = 0 * (10^11) * log(1)
         = 0 * (10^11) * 0 = 0

因此f(n)总是大于g(n),并且关系将是f(n)是ω(n)。

我的理解在这里是否正确?

编辑:进行更正

1 个答案:

答案 0 :(得分:0)

首先,坚持你的组合不起作用,因为它无效。当且仅当存在实数f(x)实数O(g(x))时,x'函数c才会f(x)≤cg(x) x≥x' 1}}适用于所有c=0。您使用f(x)=Ω(g(x)),这不是正面的,因此使用它来理解渐近复杂性并不会有所帮助。

但更重要的是,在您的示例中,f(x)=O(g(x))并非如此。实际上,它实际上是log(n)=O(n^0.1)。您可以看到这一点,因为nlog(n)=O(n^1.1)proof here),nlog(n)=O(n^1.1 log(log(log(n)))),所以f(x)=O(g(x)),因此display: flexbox