问题
单项选择题
若要对线性表进行二分法查找,线性表 (40) 。
A.必须以链接方式存储,且数据元素按值排序
B.必须以顺序方式存储,且数据元素按值排序
C.必须以顺序方式存储
D.必须以链式方式存储
答案
参考答案:B
解析:
本题考查二分法查找的方法。
二分法查找又称折半查找,它是一种效率较高的查找方法。二分法查找要求线性表是有序表。二分法查找的基本思想是(设R[low,…,high]是当前的查找区间):
(1)确定该区间的中点位置:mid=[(low+high)/2]。
(2)将待查的k值与R[mid].key比较,若相等,则查找成功并返回此位置;否则须确定新的查找区间,继续二分查找。
(3)下一次查找是针对新的查找区间进行,重复步骤(1)和(2)。
(4)在查找过程中,low逐步增加,而high逐步减少。如果high<low,则查找失败,算法结束。
从二分法查找的基本思想中可以看出,如果是链接存储,我们无法确定区间的中点位置,因此,只能是顺序存储。