2012-11-11 69 views
1

我理解它背後的「理論」。是一些類型或數組鏈表,它們在數組中的位置是「hashFuction(element)mod array.length」的結果,並且您使用該列表來管理衝突。使用散列表實現圖形

我的問題是,實際上陣列的最佳長度是什麼?我們正在使用最多20,000個節點的圖形。但我認爲,一系列2萬個元素已經太低效了。

我正在考慮創建一個X長度的數組,然後如果它達到了許多元素做的事情就像將所有元素複製到2X數組,但問題是他們不會有相同的索引的元素和我實際上可以「複製」所有的數組,我需要爲每個元素應用散列函數來查找他們的新位置,如果我正在談論10,000個元素數組,它會非常慢。

對不起,我的語法錯誤,英語不是我的母語。

+0

從我的理解,你正在實現的東西,使用哈希表來維護......?你能詳細說明一下嗎?你有鏈接到一篇論文嗎? – Origin

+0

是的,[這裏](http://arxiv.org/pdf/0908.3089.pdf)。是圖的實現,我們將節點存儲在散列表中。 – chiguire

回答

0

你所描述的實質上是一個鏈式散列表,你的問題歸結爲如何調整表的大小以便節省空間。我認爲你是在過度工程你的解決方案。相反,只需在您的編程語言選擇中使用標準的現成散列表實現即可。它可能會比你想出的任何東西都更優化,並且可能會有更少的錯誤。

希望這會有所幫助!