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

免费题库2022-08-02  37

问题 对关键码序列(9,12,15,20,24,29,56,69,87)进行二分查找(折半查找),若要查找关键码15;则需依次与( )进行比较。A.87、29、15B.9、12、15   C.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/2425178.html

最新回复(0)