Graph 邻接表索引

Graph 邻接表索引,graph,clrs,Graph,Clrs,我正在解决这个CLRS问题,它要求找出一个图G(V,E)的每个顶点的独立度。我发现解决方案是O(| E |),因为我们只需要扫描所有的边就可以找到所有顶点的度数 但我在网上找到的大多数解决方案都说它是O(|V|+|E|)。怎么会?顶点是如何计算所用时间的?如果我们假设有向图的实现使用对象作为顶点,并且每个顶点都有一个关联的后续列表,并且没有额外的数据结构,那么直接迭代边是不可能的 如果有向图已连接,则每个顶点都至少有一条关联边。这意味着通过对顶点的迭代对边进行迭代需要O(| E |)时间-对顶点

我正在解决这个CLRS问题,它要求找出一个图
G(V,E)
的每个顶点的独立度。我发现解决方案是
O(| E |)
,因为我们只需要扫描所有的边就可以找到所有顶点的度数


但我在网上找到的大多数解决方案都说它是
O(|V|+|E|)
。怎么会?顶点是如何计算所用时间的?

如果我们假设有向图的实现使用对象作为顶点,并且每个顶点都有一个关联的后续列表,并且没有额外的数据结构,那么直接迭代边是不可能的

如果有向图已连接,则每个顶点都至少有一条关联边。这意味着通过对顶点的迭代对边进行迭代需要
O(| E |)
时间-对顶点的迭代不会增加运行时间,而运行时间主要取决于边的数量

如果有向图不连通,则顶点上的迭代不一定受边数的控制;即使是孤立的顶点也必须进行处理,以发现它们没有关联的传出弧,这可以在
O(|V|+|E|)时间内完成


总之,
O(|V |+|E |)
的运行时界限在任何情况下都是正确的;然而,对于连通有向图(或允许在边上直接迭代而不考虑顶点数量的实现),可以获得较紧的运行时界
O(| E |)

如果我们假设有向图的实现使用对象作为顶点,并且每个顶点都有一个关联的后续列表,并且没有额外的数据结构,那么直接迭代边是不可能的

如果有向图已连接,则每个顶点都至少有一条关联边。这意味着通过对顶点的迭代对边进行迭代需要
O(| E |)
时间-对顶点的迭代不会增加运行时间,而运行时间主要取决于边的数量

如果有向图不连通,则顶点上的迭代不一定受边数的控制;即使是孤立的顶点也必须进行处理,以发现它们没有关联的传出弧,这可以在
O(|V|+|E|)时间内完成

总之,
O(|V |+|E |)
的运行时界限在任何情况下都是正确的;然而,对于连通有向图(或允许在边上直接迭代而不考虑顶点数量的实现),可以获得较紧的运行时界
O(| E |)