对关键码序列(9,12,15,20,24,29,56,69,87)进行二分查找(折半查找),若要查找关键码15;则需依次与( )进行比较。

2023-09-01

A.87、29、15
B.9、12、15
C.24、12、15
D.24、20、15

参考答案:C

二分法查找(折半查找)的基本思想是:(设R[low,…,high]是当前的查找区)
(1)确定该区间的中点位置:mid=[(low+high)/2]
(2)将待查的k值与R[mid].key比较,若相等,则查找成功并返回此位置,否则需确定新的查找区间,继续二分查找,具体方法如下
若R[mid].key>k,则由表的有序性可知R[mid,…,n].key均大于k,因此若表中存在关键字等于k的结点,则该结点必定是在位置mid左边的子表R[low,…,mid-1]中。因此,新的查找区间是左子表R[low,…,high],其中high=mid-1
若R[mid].key