折半查找判定树的高度分析
最近看到一道题,在说有序数据集,长度为n时,其最大查找长度为多少
我们知道折半查找每次分块,左半部分占n/2的长度, 中间的单个元素被剔除, 右半部分占有剩下的元素, 因此找出递推式无疑是很难的
但是我们应该预料到,折半查找的生成树必定是一个平衡二叉树,因为每次分割时,左右两块差值不超过1, 而且由于除非子树的长度小于3,生成树的前n-1层都是满的
因为前n-1层被规定满秩, 则只能在第n层填满之后开启下一层, 所以折半查找判定树的高度应该为 log2(n+1), n = 2^h - 1时为满二叉树