问题
单项选择题
某一维数组中依次存放了数据元素15,23,38,47,55,62,88,95,102,123,采用折半(二分)法查找元素95时,依次与()进行了比较。
A.62,88,95
B.62,95
C.55,88,95
D.55,95
答案
参考答案:D
解析:
[要点解析] 折半查找要求线性表是有序排列的,本题中数据已按升序排好,设元素保存在一维数组r[low..high]。进行折半查找的具体方式是:
首先确定数组的中间位置mid,mid=(low+high)/2。
将待查的k值与r中间位置上元素进行比较,如果相等,则查找成功;若k<r[mid],则待查的k值必定在子区间r[low..mid-1]中,因此新的区间为r[low..mid-1];如果k>r[mid],则待查的k值必定在子区间r[mid+1..high]中,因此新的区间为r[mid+1..high]。
然后在新的区间进行查找。
本题中第一次查找时,low=1,high=10,mid=5,r[mid]=55,95>r[mid];将low设置为mid+1=6,high=10,则mid=8,r[mid]=95,查找成功。