采用折半查找算法有序表{7,15,18,21,27,36,42,48,51,54,60,72}中寻找值为15和38,分别需要进行( )次元素之间的比较。A.3和1B.3和2C.4和1D.4和3
采用折半查找算法有序表{7,15,18,21,27,36,42,48,51,54,60,72}中寻找值为15和38,分别需要进行( )次元素之间的比较。
A.3和1
B.3和2
C.4和1
D.4和3
B.3和2
C.4和1
D.4和3
参考解析
解析:折半查找:又称二分查找,优点是比较次数少,查找速度快,平均性能好,占用系统内存较少;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
在这道题中,一共有12个数字组成的有序表,首先使用15进行查找,第一次和36进行比较,因为12/2=6,所以要和第6个数字进行比较,结果15比36小,那么接下来和前一个子表进行比较,第二次是和18进行比较,结果还是比18小,类似地,第三次和7进行比较,结果15比7大,最后和15比较,一共查了4次。同样地,38第一次和36比较,结果比36大,第二次和51比较,结果比51小,第三次和42比较,结果还是比42小,那么就没有更小的了,所以比较了3次,结果查无此元素。
具体代码如下图所示。
在这道题中,一共有12个数字组成的有序表,首先使用15进行查找,第一次和36进行比较,因为12/2=6,所以要和第6个数字进行比较,结果15比36小,那么接下来和前一个子表进行比较,第二次是和18进行比较,结果还是比18小,类似地,第三次和7进行比较,结果15比7大,最后和15比较,一共查了4次。同样地,38第一次和36比较,结果比36大,第二次和51比较,结果比51小,第三次和42比较,结果还是比42小,那么就没有更小的了,所以比较了3次,结果查无此元素。
具体代码如下图所示。
![](https://cdn.niusouti.com/images/689c56a8ea95824c_img/84538af55bc7edd9.png)
相关考题:
设查找表为(50,60,75,85,96,98,105,110,120,130)(1)说出进行折半查找成功查找到元素120需要进行多少次元素间的比较?(2)为了折半查找元素95,经过多少次元素间的比较才能确定不能查到?(3)画出对上述有序表进行折半查找所对应的判定树(要求以数据元素作为树结点)。
性表中采用折半查找法(二分查找法)查找一个数据元素,线性表应(54)。A.数据元素按值有序B.采用顺序存储结构C.据元素按值有序,并且采用顺序存储结构D.据元素按值有序,并且采用链式存储结构
在13个元素构成的有序表A[1..13]中进行折半查找(或称为二分查找,向下取整)。那么以下叙述中,错误的是()。A.无论要查找哪个元素,都是先与A[7]进行比较B.若要查找的元素等于A[9],则分别需与A[7]、A[11]、A[9]进行比较C.无论要查找的元素是否在A[]中,最多与表中的4个元素比较即可D.若待查找的元素不在A[]中,最少需要与表中的3个元素进行比较
● 对于长度为 11 的顺序存储的有序表,若采用折半查找(向下取整) ,则找到第 5个元素需要与表中的 (39) 个元素进行比较操作(包括与第 5 个元素的比较) 。(39)A. 5B. 4C. 3D. 2
设有序列{10,12,15,19,22,25,100,130,150,200}画出对上述序列进行折半查找的判定树(以序列中的元素作为树的结点)。为了成功查找到100需要进行多少次元素间的比较?为了查找9,经过多少次元素间的比较可知道查找失败?
下面关于折半查找法的叙述中,正确的是()。A、只要线性表中元素按值有序排列,就可以采用折半查找B、只要线性表采用顺序存储结构,就可以采用折半查找C、线性表中元素按值有序排列,并且采用顺序存储结构时才能采用折半查找D、在链表中也可以采用折半查找
单选题下面关于折半查找法的叙述中,正确的是()。A只要线性表中元素按值有序排列,就可以采用折半查找B只要线性表采用顺序存储结构,就可以采用折半查找C线性表中元素按值有序排列,并且采用顺序存储结构时才能采用折半查找D在链表中也可以采用折半查找
填空题在序列(2,5,8,11,15,16,22,24,27,35,50)中采用折半查找(二分查找)方法查找元素24,需要进行()次元素之间的比较。