单选题 对长度为n的有序表进行二分(折半)查找时,无论查找指定的一个元素是否成功,最多只与表中的______个元素进行比较即可。

【正确答案】 B
【答案解析】[解析]
二分(折半)查找的基本思想为:在有序表中,先确定待查元素所在的区域,再逐步缩小这个区域,直到在区域中找到该元素(查找成功)或者区域缩小为0也没有找到该元素(查找失败)为止。通常采用如下递归步骤:
(1)将区域分为左、中、右三个部分,其中区域中间的元素单独处于中间区域,该元素左、右两边的元素分别属于左、右区域,则左、右区域所包含的元素相等(或相差1个1,数量为原区域元素的一半;
(2)比较给定关键字与中央区域元素的关键字,如果相等则查找成功,该元素即为所求;
(3)如果给定关键字较大,那么待查元素只可能出现在中间元素右边,则继续对右区域执行步骤1~4;
(4)否则给定关键字较小,则待查元素只可能出现在中间元素左边,继续查找左区域即可。
在二分(折半)查找时,无论查找成功与否,最多只与表中的[log2n+1个元素进行比较,例如,对含有12个元素的有序表(1,4,10,16,17,18,23,29,33,40,50,51)进行折半查找,如果要查找17,那么首先应该与第6个元素比较,由于17小于18,那么应该在前半部分查找,那么接着应该与第3个元素比较,由于大于10,那么应该接着与16比较,最后与17比较,然后查找成功,一共比较了4次。如果要查找19,那么首先应该与第6个元素比较,由于19大于18,那么应该在后半部分查找,
那么接着应该与第9个元素比较、由于大于33,那么应该接着与29比较,最后与23比较,然后查找失败,一共也比较了4次,即[log212]+1。