在55个互异元素构成的有序表A[1..55]中进行折半查找(或二分查找,向下取整)。若需要找的元素等于A[19],则在查找过程中参与比较的元素依次为( )、A[19]。

2023-09-01

A.A[28]、A[30]、A[15]、A[20]
B.A[28]、A[14]、A[21]、A[17]
C.A[28]、A[15]、A[22]、A[18]
D.A[28]、A[18]、A[22]、A[20]

参考答案:B

折半查找时,下标计算过程为(注:key的值与A[19]相同):
1、mid=[(1+55)/2]=28,把A[28]与key的值比较后,缩小查找范围为:A[1]至A[27];
2、mid=[(1+27)/2]=14,把A[14]与key的值比较后,缩小查找范围为:A[15]至A[27];
3、mid=[(15+27)/2]=21,把A[21]与key的值比较后,缩小查找范围为:A[15]至A[20];
4、mid=[(15+20)/2]=17,把A[17]与key的值比较后,缩小查找范围为:A[18]至A[20];
5、mid=[(18+20)/2]=19,把A[19]与key的值比较后,发现值相等,找到目标。