[英]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.