普通版本
BST_Sort(A):
T <- φ
for i <- 1 to n
Tree_Insert(A[i],T)
Inorder_Tree_Search()
与快速排序是失散多年的兄弟
此处更新中
随机版本
BST的上的操作和树的高度有很大关系,上面的普通版本构造树假如是n个结点一棵完全二叉树,这些操作最坏的运行时间为Θ(lgn),而一旦这n个结点是一条线性链,那么同样得操作需要Θ(n)的最坏运行时间,而下面的随机构造的BST的期望高度为O(lgn)【下面证明】,因此基本操作的平均运行时间为Θ(lgn),这就是为什么需要构造随机BST
Random_BST_Sort(A):
均匀随机打乱A
BST_Sort(A):
在这里随机选取一个根节点,而快速排序随机选择随机pivot
所以他们最好最坏期望的运行时间都一样,
证明BST的期望高度为O(lgn)
Jenson不等式就不证明了,只证明②