试写出二分查找的算法,用low和high来表示当前查找区间的上界和下界,mid为中间位置
时间: 2024-03-11 07:47:26 浏览: 78
二分查找算法
4星 · 用户满意度95%
好的,以下是二分查找算法的示例代码(使用C语言):
```c
int binary_search(int arr[], int n, int target) {
int low = 0, high = n-1;
while (low <= high) {
int mid = (low + high) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
low = mid + 1;
} else {
high = mid - 1;
}
}
return -1;
}
```
其中,arr为待查找的有序数组,n为数组的长度,target为需要查找的目标值。在二分查找中,我们通过将查找区间不断缩小一半,来逐步逼近目标值。
在代码中,我们使用low和high来表示当前查找区间的上界和下界,初始时low为0,high为n-1。在每一轮查找中,我们通过计算mid来找到当前查找区间的中间位置。如果arr[mid]等于target,则直接返回mid;如果arr[mid]小于target,则说明目标值在mid的右侧,因此需要将查找区间缩小到mid+1到high;如果arr[mid]大于target,则说明目标值在mid的左侧,因此需要将查找区间缩小到low到mid-1。最终,如果没有找到目标值,则返回-1。
希望这个示例代码能够帮到你,如果你还有其他问题,请继续提出。
阅读全文