2016-05-25 69 views
-2

BFS廣度優先搜索分支因子和深度

我想知道時間和內存是如何計算我試圖用此操作系統(B^d) 但不給我相同的值

+0

無法計算使用特定輸入運行特定算法所需的實際時間。爲了對算法進行基準測試,您必須執行並運行它。 – Paul

+0

它們都與b^d(*即*節點數量)成比例 - 請參閱相鄰的時間和內存值大約相差100倍(與節點數量相同)。 – qwertyman

回答

1

最重要的計算在第二列中:完整樹中的節點數。公式爲"What is the total number of nodes in a full k-ary tree, in terms of the number of leaves?"的答案。只是由10取代k,作爲表談到「分支因子B = 100」

N =(10 d + 1 - 1)/ 9

對於出於某種原因,您所呈現的表不計算根節點,因爲在包含根節點的情況下,深度爲2的樹的計數應爲111,而不是110.但這只是一個細節。

的時間以秒計算爲節點由100000除以數(即在第2欄中的值),如在腳註(「100000個節點/秒」)表示。這是quite trivial翻譯一個大數字的數秒至數分鐘,數小時,數天,年等

的腳註進一步提到的假設內存消耗「1000個字節/節點」,所以它是這是將節點數(第二列中的值)乘以1000的問題。該表然後實際使用JEDEC memory standards for storage,其中千字節不是完全是1000字節,而是1024字節。所以你需要用這個因子除以節點數來得到千字節數,然後再用來得到兆字節數......等等。例如參見"How to convert byte size into human readable format in java?"

+0

你能不能讓我知道這是否回答你的問題? – trincot