给定无向图G =(V,E),V1,V2是V的子集。
d(V1,V2)=min d(v1,v2)
,
所以我需要弄清楚如何在O(|V|+|E|)
如果则d(V1,V2)=0
否则,我从V1中随机选择v1'并运行BFS(V1,v1'),从v1中保存最远的顶点 在v1'' 我会对V2中的一些随机顶点v2'做同样的事情。 return d(V1,V2)= min {d(v1',v2'),d(v1',v2''),d(v1''v2'),d(v1'',v2'')} < / p> 那会有用吗?由于BFS的运行时间为O(| V | + | E |),因此建议的算法将在O(| V | + | E |)中运行
答案 0 :(得分:5)
IMO您可以做的如下: