我正在構建計算有向圖的G^2的算法,該有向圖是一個鄰接表的形式,其中G^2 = (V,E'),其中如果在G中u和v之間存在長度爲2的路徑,那麼E'被定義爲(u,v)∈E'。我非常瞭解這個問題並找到了一個我假設的算法是正確的,但是我的算法的運行時間是O(VE^2),其中V是頂點的數量,E是圖的邊數。我想知道如何在O(VE)時間內做到這一點,以提高效率?計算有向圖的平方的算法(以鄰接表的形式表示)
這裏的算法,我想出了:在鄰居
頂點頂點中
鄰居在N個相鄰
如果(!N =鄰居)
則 - >如果( n.value == neighbor)
將此添加到新的鄰接列表
break; //這意味着我們已經找到頂點和鄰居之間大小爲2的路徑
否則