Graph 利用邻接表向图中添加边的时间复杂度
我一直在研究使用邻接列表实现的图形,我认为添加边是一个O(1)操作 如果您只是将一条边固定到顶点的边链接列表上,这是有意义的,但我不明白,如果已经存在一条边,只要您关心删除旧边,这种情况怎么会发生。找到那条边需要O(V)时间 如果不这样做,并且添加一条已经存在的边,则该边将有重复的条目,这意味着它们可能具有不同的权重,等等Graph 利用邻接表向图中添加边的时间复杂度,graph,time-complexity,adjacency-list,insertion,Graph,Time Complexity,Adjacency List,Insertion,我一直在研究使用邻接列表实现的图形,我认为添加边是一个O(1)操作 如果您只是将一条边固定到顶点的边链接列表上,这是有意义的,但我不明白,如果已经存在一条边,只要您关心删除旧边,这种情况怎么会发生。找到那条边需要O(V)时间 如果不这样做,并且添加一条已经存在的边,则该边将有重复的条目,这意味着它们可能具有不同的权重,等等 谁能解释一下我似乎遗漏了什么?谢谢 你的复杂性分析是对的。找出是否已经存在的边真的是O(V)。但请注意,添加此边(即使存在)仍然是O(1) 您需要记住,如果有两条边具有相同的
谁能解释一下我似乎遗漏了什么?谢谢 你的复杂性分析是对的。找出是否已经存在的边真的是O(V)。但请注意,添加此边(即使存在)仍然是O(1) 您需要记住,如果有两条边具有相同的源和目标,则它们是图形的有效输入,即使权重不同(可能不是偶数,而是因为)
向邻接列表图添加边的方法是O(1)人们通常所做的是既具有最佳搜索时间复杂性,又具有邻接列表的优点,即使用哈希集数组而不是列表数组 或者 如果您想要最坏情况下的最佳解决方案,请使用RadixSort命令 列出O(v+e)时间内的所有边,删除重复项,然后生成 邻接列表以通常的方式表示 资料来源: