随机二进制搜索树

时间:2011-03-21 21:33:09

标签: tree binary-tree binary-search binary-search-tree

我有一个BST,我从1 ... n随机插入键(每个排列用1 / n!概率完成)。 我的问题是,即使排列统一,结果树也不是统一

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

二叉搜索树不仅仅是一个统一的搜索树...树是按照新值保存在其中的顺序构建的。正如辉光编码器已经表明的那样,这并不能保证一致性......

具有随机数的均匀分布并不能保证构建二叉树的最佳值顺序

要通过二叉树进行最小努力搜索,必须定期重建树。这通常发生在非工作时间,其中算法可以将整个树读取到链表中,然后从该列表构建具有最佳均匀性的新树