已知一个有序表为(15,19,30,33,49,50,65,88,93,126,164),当二分查找值为126的元素时,检索成功需进行的比较次数为()
A、
1次
B、
2次
C、
3次
D、
4次
【正确答案】:C
【题目解析】:
二分查找(Binary Search)的查找过程为每次用给定值与处在表的中间位置的数据元素的键值进行比较,确定给定值的所在区间,然后逐步缩小查找区间。重复以上过程直至找到或确认找不到该数据元素为止。
首先,置查找区间初值是[15,164],待查区间是[1,11],取中间位置mid=(1+11)/2=6,即50,与126比较。
因为50<126,说明待查元素存在,必在待查区间是[7,11]中,故新的中间位置是mid=(7+11)/2=9,即93,与126比较。
因为93<126,说明待查元素存在,必在待查区间是[10,11]中,故新的中间位置是mid=(10+11)/2=10,即126,与126比较。
因为126=126,故查找成功。
综上,比较了3次。