【问题标题】:What is the overall complexity of several algorithms?几种算法的总体复杂度是多少?
【发布时间】:2020-04-11 10:33:18
【问题描述】:

提取时间min=O(logn)

冒泡排序=O(n)

呼吸优先搜索=O(n+E)

例如,如果一个算法运行在 O(logn) + O(n) + O(n+E) 或 O(logn + n + E)(我很困惑),我可以说这是一个 O( logn) 上述算法的总体时间复杂度?

什么是正确的?

【问题讨论】:

  • 我假设 E 是图中的边数?你能给出更好的解释吗?
  • @Rup 我同意。它是 O(n)、O(E) 或 O(n+E)。取决于 E。
  • 冒泡排序复杂度为 O(n^2)。

标签: algorithm data-structures time-complexity big-o


【解决方案1】:

Big-O 表示法显示了当输入的大小增加时(大约)运行时间将如何增长。当增加复杂性时,你会选择其中“最糟糕的”。与 O(n+E) 相比,O(log(n)) 可以忽略不计,O(n) 也是如此。所以,如果你有一个结合所有这些部分的算法,那么总体复杂度将是 O(n + E)。

【讨论】:

  • 不完全是,这取决于 E 有多大。如果 E >> n 则为 O(E),如果 E ~ n 为 O(E+n),如果 E << n 为 O(n )。
  • @Ohad true 'dat,但请注意,问题的原始部分已经定义为 O(n+E),并且应该已经应用了相同的逻辑。
猜你喜欢
  • 1970-01-01
  • 2019-07-15
  • 2017-03-27
  • 2017-02-11
  • 2023-03-07
  • 2012-08-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多