[英]Finding a minimal tree-type network of a graph where each node is connected to each other and find the sum of each node to all the other nodes
[英]in grpah what will be the fastest way to find all the nodes connected to one node but not connected to another node.?
假設您有兩個節點 P 和 Q。現在我們必須找到與 Q 有邊但與 P 沒有邊的節點。最快的方法是什么? 我應該使用什么算法或數據結構? 目前,每當添加一條邊時,我都會為每個節點維護一個向量,該向量保存連接到該節點的所有節點(讓我們將這個 Vi 稱為第 i 個節點)。 我也有鄰接矩陣。 我正在做的大致是這樣的。
for each node in Vq
check if it is connected to P using adjacency matrix
do something with this node
你認為這里可以做更快的事情嗎?
幾乎相同的事情:
這明確表示在 for 循環中沒有另一個循環用於“檢查它是否已連接”。
這是理論上你能做到的最快速度(這是 O(n),理論上的下限是 O(n))。 在實踐中,您可能能夠根據您使用的語言和優化的目的來優化它。 例如,如果您將其表述為 Matlab 會喜歡它:
nodes = (~rowP)*rowQ';
如果我錯了,請糾正我,但它的運行速度不應超過線性時間。 必須檢查每個節點,但要在恆定時間內驗證邊的存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.