我需要有一個數據結構與說4鍵和其他數據;我可以對這些鍵中的任何一個進行排序。我可以選擇什麼樣的數據結構? 排序時間應該很少數據結構排序+搜索有效
想到一棵樹,但只會幫助搜索一個鍵。 ...對於其他密鑰將不得不重新制作該特定密鑰樹,然後找到它... 任何數據結構,可以有哪些將同時照顧所有4個鍵? https://stackoverflow.com/questions/ask
我需要有一個數據結構與說4鍵和其他數據;我可以對這些鍵中的任何一個進行排序。我可以選擇什麼樣的數據結構? 排序時間應該很少數據結構排序+搜索有效
想到一棵樹,但只會幫助搜索一個鍵。 ...對於其他密鑰將不得不重新制作該特定密鑰樹,然後找到它... 任何數據結構,可以有哪些將同時照顧所有4個鍵? https://stackoverflow.com/questions/ask
恐怕沒有這樣的結構,將保證您在同一時間訪問每個值。
最有效的搜索結構是trees
。有很多不同種類的樹木。最簡單的是binary search tree
。但有可能你必須迭代這個結構中仍然存在的所有鍵。
這就是爲什麼我建議你這棵樹的平衡版本。二叉樹是簡單的結構。
如果您正在尋找更先進的東西,請查看B-Tree
。這個結構被數據庫索引使用,被認爲是非常有效和快速的。
感謝戴夫..任何想法如何數據庫排序不同的鍵,因爲我們可以在不同的鍵上排序? – j10
你能舉個例子嗎?數據庫的排序方式取決於許多因素。最有效的方法是選擇符合您的搜索條件的鍵,對它們進行排序,然後僅將它們用作獲取數據的參考。 – DaveTsunami
我的四個字段是:源IP,目標IP,源端口和目標端口。 – j10
對於這樣的更一般的問題,最好在http://programmers.stackexchange.com/處詢問。 –