我有一个 BST,我从 1...n 随机插入密钥(每个排列都以 1/n!概率完成)。我的问题是为什么即使排列是统一的,结果树也不统一?
问问题
957 次
2 回答
3
很大程度上取决于树的实现。是自我平衡吗?考虑简单的树 1 2 3 和 3 2 1
Very simple tree:
add 1
1
add 2
1
\
2
add 3
1
\
2
\
3
然后 3 2 1
加 3
3
add 2
3
/
2
add 1
3
/
2
/
1
现在做 2 3 1
2
2
\
3
2
/ \
1 3
于 2011-03-21T21:37:50.123 回答
1
二叉搜索树不仅仅是一棵统一的搜索树......一棵树是按照新值保存在其中的顺序构建的。正如glowcoder已经展示的那样,这并不能保证一致性......
具有均匀分布的随机数并不能保证构建二叉树的最优值顺序
为了通过二叉树进行最小的搜索,必须定期重建树。这通常发生在非工作时间,算法可能会将整棵树读入一个链表,然后从该链表中构建一个具有最佳一致性的新树
于 2011-03-21T21:45:02.230 回答