[英]Search cost on Tree with ordered nodes
上下文:我正在建立一個FoundationDB,並且在考慮首先使用哪種密鑰
假設我們具有以下元素集:
{AP,AQ,AR,BP,BQ,BR}
我們想從中建造一棵樹。 一種方法是先按第一個字符分組,然后再按第二個分組,以獲得
root
+-----+------+
+ +
A B
+----+----+ +----+----+
| | | | | |
+ + + + + +
P Q R P Q R
另一種可能的方式是先按第二個字符分組,然后按第一個字符分組,以獲得:
root
+--------+--------+
+ + +
P Q R
+--+-+ +--+--+ +-+--+
+ + + + + +
A B A B A B
假設字符串的概率分布是均勻的,那么哪一個導致最快的搜索時間? 通常,最好在頂層或樹木或底層的樹枝上具有大量分支嗎?
第一個解決方案將導致從2個選項中選擇一個,然后從3個選項中選擇一個,而第二個解決方案將首先從3個選項中選擇一個,然后從2個選項中選擇一個。 理論上,兩者應該大致相同。
編輯:根據您的評論。 如果您有兩層,選擇的數量顯着不同(例如30和1000000),我建議您將30個選項放在較高的級別,然后將1000000個放在較低的級別。 我相信,在類似情況下,緩存會更加加快下層的速度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.