我以前从未听过这个,或者我用其他方式听过这个?
上下文是对于邻接列表,列出与 u 相邻的所有顶点的时间是Θ(deg(u))
。
同样,确定(u,v)∈E是否为O(deg(u))
的时间。
如果邻接列表的实现是一个数组,那么我认为在数组中找到 u 是恒定的时间。
如果所有相邻顶点都链接到 u ,那么我相信它需要O(n)
时间来列出或找到所有顶点,其中n是相邻顶点的数量。
这基本上是Θ(deg(u))
的含义吗?
答案 0 :(得分:5)
Θ(deg(u))
= u
度的大-Theta =时间是由顶点的程度紧密限定的(从上方和下方限定)。在图的邻接列表表示的情况下,顶点u
的程度是|adj[u]|
的列表大小u
。
因此,通过邻接列表迭代u
的相邻顶点紧密绑定到u
附近的顶点数量(算法事实有时听起来多余,不是吗?)
Big-O和Big-Theta之间的区别在于Big-O是上限,而Big-Theta表示从上到下的紧密界限。也就是说,相同的表达式用作边界,但具有不同的系数m和x0。请参阅维基百科上的the family of Bachmann-Landau notations。
答案 1 :(得分:2)
我非常确定deg(u)
表示“u
的程度”,即包含u
的边数。在邻接列表表示中,该数字也将是u
的邻接列表的大小,因此迭代它需要Θ(|list|)
,即Θ(deg(u))
。