c语言二分查找完整代码
时间: 2023-07-24 09:40:58 浏览: 53
下面是一个简单的C语言二分查找的完整代码:
```c
#include <stdio.h>
int binarySearch(int arr[], int l, int r, int x)
{
while (l <= r)
{
int mid = l + (r - l) / 2;
// 如果 x 小于中间元素,则在左子数组中查找
if (arr[mid] == x)
return mid;
// 如果 x 大于中间元素,则在右子数组中查找
if (arr[mid] < x)
l = mid + 1;
// 如果 x 小于中间元素,则在左子数组中查找
else
r = mid - 1;
}
// 如果找不到,则返回 -1
return -1;
}
int main()
{
int arr[] = {2, 4, 6, 8, 10, 12, 14, 16};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 10;
int result = binarySearch(arr, 0, n - 1, x);
(result == -1) ? printf("元素 %d 不存在于数组中\n", x)
: printf("元素 %d 存在于数组中,下标为 %d\n", x, result);
return 0;
}
```
其中,`binarySearch()` 函数接受一个数组 `arr`,左边界 `l`,右边界 `r` 和要查找的元素 `x`。该函数使用 while 循环执行二分查找,最终返回元素的下标。如果找不到元素,则返回 -1。在 `main()` 函数中,我们定义了一个数组,然后调用 `binarySearch()` 函数来查找元素 10。最后,我们打印结果。