问题 单项选择题

某一维数组中依次存放了数据元素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,查找成功。

单项选择题
问答题 案例分析题