![](/img/trans.png)
[英]For a given graph G = (V,E) how can you sort its adjacency list representation in O(E+V) time?
[英]Given an undirected graph G = (V, E), determine whether G is a complete graph
我很确定这个问题是P而不是NP,但是我很难提出多项式绑定算法来解决它。
您可以 :
n(n-1)/2
。 n-1
不同的顶点。 这将在多项式O(V²)
运行。
希望能有所帮助。
这是一个O(| E |)算法,该算法的常数也较小。
枚举完整图形中的每个边都是微不足道的。 因此,您要做的就是扫描边缘列表,并验证每个这样的边缘是否存在。
对于每个边(i,j),令f(i,j)= i * | V | + j。 假设顶点编号为0到| V | -1。
设bitvec
为长度| V |的位向量 2 ,初始化为0。
对于每个边(i,j),设置bitvec[f(i, j)]
= 1。
当且仅当bitvec
每个元素== 1时,G才是完整的图。
该算法不仅触及E一次,而且如果您有分散指令,它也可以完全向量化。 这也意味着并行化很简单。
这是一个O(E)算法:
总计为O(E)
对于给定的图G =(V,E),检查V中的每对u,v,并查看边(u,v)是否在E中。u,v对的总数为| V | *( | V | -1)/ 2。 结果,时间复杂度为O(| V | ^ 2),您可以检查并查看图形是否完整。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.