2010-11-22 111 views

回答

2

我會添加一點贊成Prim算法,我沒有見過提及。如果給定N點和x和y之間距離的距離函數d(x,y),那麼使用空間O(N)(但是時間N^2)很容易實現Prim算法。

從任意點A開始,創建一個N-1大小的數組,給出從A到所有其他點的距離。選擇與最短距離相關的點B,將生成樹中的A和B鏈接起來,然後更新數組中的距離作爲已記錄到該另一個點的距離的最小值以及距其他點的距離點,注意最短的鏈接來自B和A從哪裏繼續。

我不知道類似的方法來處理由距離函數指定的稠密圖形的Kruskal算法,對於大N,在耗盡時間之前您可能用盡空間O(N^2) O(N^2)。