// 本题要求补充的函数——二分查找算法 int BinarySearch(SqList L, DataType x) { /* L为静态查找表,x为待查找的数据元素 */ int low = 0, upper = L.length - 1, mid; while ( low <= upper ) { mid= 6 ; if ( L.items[mid] == x ) return ; if ( L.items[mid] < x ) ; else ; } return -1; }
时间: 2024-01-04 18:02:14 浏览: 119
基于python的查找算法-二分查找Binary Search
好的,我来帮您补充一下二分查找算法。
```c
int BinarySearch(SqList L, DataType x) {
int low = 0, upper = L.length - 1, mid;
while (low <= upper) {
mid = (low + upper) / 2;
if (L.items[mid] == x) {
return mid;
} else if (L.items[mid] < x) {
low = mid + 1;
} else {
upper = mid - 1;
}
}
return -1;
}
```
实现思路和之前提到的方法类似,不过这里有几点需要注意:
1. 变量 `mid` 的初始值应该为 `(low + upper) / 2`,而不是 `6`。
2. 当中间位置的元素等于待查找元素时,应该返回 `mid`,而不是空值。
3. 当中间位置的元素小于待查找元素时,应该将 `low` 更新为 `mid + 1`。
4. 当中间位置的元素大于待查找元素时,应该将 `upper` 更新为 `mid - 1`。
5. 如果循环结束时仍未找到待查找元素,应该返回 `-1`。
希望我的回答能够帮到您!
阅读全文