+ -
当前位置:首页 → 问答吧 → 关于折半查找,书上的介绍有点不理解。平均查找长度怎么算的?

关于折半查找,书上的介绍有点不理解。平均查找长度怎么算的?

时间:2011-11-28

来源:互联网

书上说:
  假定有序表的长度n=2^h-1,则描述这边查找的判定树是深度为h的满二叉树。树中层次为1的结点有1个,层次为2的结点有2个……,层次为h的结点有2^(h-1)个。假设表中每个记录的查找概率相等(Pi=1/n),则查找成功时折半查找的平均查找长度

ASLbs=Pi*Ci(i从1到n)
  =(1/n)(j*2^(j-1))(j是从1到h)

为什么不是(1/n)*j呢?不是第j层之前只比较了j个记录吗?不是每一层只比较一次吗?

书上说:Ci为找到表中其关键字与给定值相等的第i个记录时,和给定值已进行过比较的关键字个数

作者: shimachao   发布时间: 2011-11-28

1, 3, 5, 7, 9, 11, 13

对以上有序数组,查找关键字8,自己走一遍看看,是不是你想的那样。然后把相应的二叉搜索树画出来,再看看是怎么找的。

作者: mougaidong   发布时间: 2011-11-28

热门下载

更多