首页 > 试题广场 >

对有14个关键字的有序表进行折半查找,在等概率的情况下查找成

[填空题]
对有14个关键字的有序表进行折半查找,在等概率的情况下查找成功时的平均查找长度为1
/*方案一:画判定树ASL
             7
       3              11
   1       5      9       13
     2   4   6  8   10  12   14
ASL = 1/14(1*1+2*2+3*4+4*7)= 3.2142857142857 */
//方案二:代码
<?php
$num = 14;//总共多少个数
$arr = range(1,$num);
$count = 0;
for($i=1;$i<=$num;++$i){
    $low = 0;
    $high = $num;
    while ($low<=$high) {
        $count++;
        $mid = floor(($low+$high)/2);
        if($arr[$mid]==$i){
            break;
        }
        else if($arr[$mid]>$i){
            $high = $mid-1;
        }else{
            $low = $mid+1;
        }
    }
}
echo $count/$num; 


编辑于 2018-09-09 17:00:00 回复(0)