如何解决删除邻接表中的边的时间复杂度
对于图(V,E),其中V是顶点总数,E是边总数,删除边的时间复杂度是多少?我认为这将是O(V)最坏的情况,因为任何顶点可以具有的最大边数为V-1。但是我被告知时间复杂度为O(M),其中M是顶点具有的边数。哪个是正确的?
解决方法
取决于图形的结构。
如果您选择将图形实现为邻接列表,则从列表中删除元素为O(V),因为您可能必须遍历列表。
但是,您可以将图形实现为集合列表(每个集合是节点的相邻节点的列表),因此,如果对集合进行排序,则时间复杂度可以为O(logV)或O(1)如果它是一个哈希集。
如果图形表示为邻接矩阵,则它也为O(1),因为您只需要擦除E [u] [v]和E [v] [u]。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。