设L[low..high]是当前的查找区间,首先让待查找的数据元素同线性表中间结点mid=( )的关键字比较,若比较相等,则查找成功并结束二分检索。
A: (low-high)/2
B: (low+high)/2
C: (low-high)*2
D: (low+high)*2
A: (low-high)/2
B: (low+high)/2
C: (low-high)*2
D: (low+high)*2
举一反三
- 设low和high分别是在有序表中折半查找的指针,如果查找的关键字Key大于low和high的中间值mid所指的关键字,则正确缩小查找区间的是( )。 A: high=mid+1 B: high=mid C: low=mid+1 D: low=mid
- 设L[low..high]是当前的查找区间,首先让待查找的数据元素同线性表中间结点mid=(low+high)/2的关键字比较,若待查找的数据元素比中间结点的关键字大,则在线性表的后半部分,即 low =( )进行二分检索。 A: mid-1 B: mid C: mid+1 D: mid/2
- 假设待查找区间的起始位置和终止位置分别为low和high,则二分查找算法在下面情况出现时说明找不到要查找的数据( )。 A: low >high B: low<high C: low=high D: low<=high
- 二分查找算法中,待查元素找不到时需要满足的条件是( )。 A: low<=high为假 B: low<=high为真 C: low=high为真 D: low<high为真
- 代码填空【使用递归实现二分查找】 int binarySearch(int a[], int key, int low, int high) { if (low > high) return -1; int mid; mid = (low + high) / 2; if (key == a[mid]) return mid; else if (key < a[mid]) return ________(1)__________; else return ________(2)______________; }