gpt4 book ai didi

algorithm - 以下哪个函数不是 O(log(N))

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:34:07 25 4
gpt4 key购买 nike

我有一道计算机科学课的多项选择题:

下面哪个函数不是O(log(N))

  1. log(log(N))
  2. 1000 + log(N)
  3. 1000 log(N)
  4. log(1000 N)
  5. log(N^2)
  6. 1000 log(1000 N^1000)
  7. 以上都是O(log(N))

哪个是正确答案?

最佳答案

正确的选项是 7 - 每一个都是 O(log(N))

让我们看看为什么:

  1. log(log(N)) - 这比 log(N) 增长得慢,所以技术上你可以说它是 O(log (N))(虽然实际上人们通常会尝试获得最紧的界限,所以你会说它是 O(log(log(N)))。FWIW,你可以甚至说它是 O(N^2)O(N^N)

  2. 1000 + log(N) - 这显然是 O(log(N)) - 请记住常量被丢弃;这里感兴趣的术语是 log(N)

  3. 1000 log(N) - 出于同样的原因,这是 O(log(N))(增长因子是 log( N),渐近分析中该常数可忽略不计)。

  4. log(1000 N) - 同样,常量...

  5. log(N^2) - 请记住 log(a^b)b log(a) 相同>,所以 log(N^2)2 log(N) 相同,出于同样的原因,后者是 O(log(N)).

  6. 1000 log(1000 N^1000) - 同样,这等同于 10^6 log(1000 N),即 O(日志(N))

如果出于某种原因您仍然不确定为什么常量在渐近分析中被丢弃,您可以查看 the formal definition of Big O notation ,但背后的直觉是,随着 N 的增长,常数因子很容易变得(在某些时候)可以忽略不计,因此它们不会产生太大的差异。 Big O 分析的重点是了解算法的运行时间如何随着输入越来越大而增长。

关于algorithm - 以下哪个函数不是 O(log(N)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32214214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com