Tree 随机二叉搜索树

Tree 随机二叉搜索树,tree,binary-tree,binary-search,binary-search-tree,Tree,Binary Tree,Binary Search,Binary Search Tree,我有一个BST,在这里我随机插入1…n的密钥(每个置换都是以1/n!概率完成的)。 我的问题是,即使排列是一致的,为什么生成的树也不一致?很大程度上取决于树的实现。是自我平衡吗?考虑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 现在做2 3 1 2 2 \ 3 2 / \ 1 3 很大程度上取决于树的实现

我有一个BST,在这里我随机插入1…n的密钥(每个置换都是以1/n!概率完成的)。
我的问题是,即使排列是一致的,为什么生成的树也不一致?

很大程度上取决于树的实现。是自我平衡吗?考虑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

现在做2 3 1

2

2
 \
  3


  2
 / \
1   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

现在做2 3 1

2

2
 \
  3


  2
 / \
1   3

二叉搜索树不仅仅是一个统一的搜索树。。。树是按新值保存的顺序构建的。正如glowcoder已经展示的那样,这并不能保证一致性

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


要通过二叉树进行最小努力搜索,必须定期重建树。这通常发生在非工作时间,算法可以将整个树读入一个链表,然后从该链表中构建一个具有最佳一致性的新树。二元搜索树不仅仅是一个统一的搜索树。。。树是按新值保存的顺序构建的。正如glowcoder已经展示的那样,这并不能保证一致性

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


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

什么是“一致”树?平衡的树?他的意思是当数据是平衡的时候,为什么树的结构是不同的same@glowcoder谢谢,这正是我的意思,看看我的答案-考虑树的结构在每一个插入,以及下一个元素将去向何处。您将看到,如果不进行某种重新平衡,按排序顺序添加元素将导致非常糟糕的优化树!!你说的“统一”树是什么意思?平衡的树?他的意思是当数据是平衡的时候,为什么树的结构是不同的same@glowcoder谢谢,这正是我的意思,看看我的答案-考虑树的结构在每一个插入,以及下一个元素将去向何处。您将看到,如果不进行某种重新平衡,按排序顺序添加元素将导致非常糟糕的优化树!!