【问题标题】:What does Θ(deg(u)) mean?Θ(deg(u)) 是什么意思?
【发布时间】:2011-10-12 20:18:17
【问题描述】:

我以前从未听说过这个,或者我可能以其他方式听说过?
上下文是,对于邻接列表,列出与 u 相邻的所有顶点的时间是 Θ(deg(u))
同理,判断(u,v)∈E是否为O(deg(u))的时间。
如果邻接表的实现是一个数组,那么我假设在数组中找到 u 的时间是恒定的。
如果所有相邻顶点都链接到u,那么我相信列出或找到所有顶点需要O(n) 时间,其中n 是相邻顶点的数量。
这本质上是Θ(deg(u)) 的意思吗?

【问题讨论】:

  • 我这是一个编程问题,因为我真的说不出来。原谅我的菜鸟。
  • 这比编程更数学化,但安全地符合基本的理论 CS,因此在我看来,SO 比说数学或理论更合适。
  • 我正在讨论在哪里发布它,因为它更注重数学,但我希望这是正确的地方。

标签: big-o analysis adjacency-list


【解决方案1】:

Θ(deg(u)) = u 度数的 Big-Theta = 时间由顶点度数严格限制(从上到下有界)。在图的邻接列表表示的情况下,顶点u 的度数是|adj[u]|u 的列表大小。

因此,通过邻接列表迭代u 的相邻顶点与u 相邻的顶点数量紧密相关(算法事实有时听起来是多余的,不是吗?)。

Big-O 和 Big-Theta 之间的区别在于 Big-O 是一个上限,而 Big-Theta 表示从上到下的严格限制。也就是说,相同的表达式用作界限,但具有不同的系数 m 和 x0。请参阅维基百科上的 the family of Bachmann-Landau notations

【讨论】:

    【解决方案2】:

    我很确定deg(u) 的意思是“u 的度数”,即包含u 的边数。在邻接列表表示中,该数字也将是u 的邻接列表的大小,因此迭代它需要Θ(|list|),即Θ(deg(u))

    【讨论】:

      猜你喜欢
      • 2013-10-28
      • 2023-03-07
      • 2023-01-19
      • 2013-09-22
      • 1970-01-01
      • 1970-01-01
      • 2019-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多