对关键码序列(9,12,15,20,24,29,56,69,87)进行二分查找(

考试题库2022-08-02  20

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

选项 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<k,则要查找的k必在mid的右子表R[mid+1,…,high]中,即新的查找区间是右子表R[low,…,high],其中low=mid+1
若R[mid].key=k,则查找成功,算法结束
(3)下一次查找是针对新的查找区间进行,重复步骤(1)和(2)
(4)在查找过程中,low逐步增加,而high逐步减少。如果high<low,则查找失败,算法结束。
转载请注明原文地址:https://tihaiku.com/congyezige/2407232.html

最新回复(0)