二分法查找完整程序c语言
时间: 2023-08-28 10:03:58 浏览: 108
c语言 二分法查找
4星 · 用户满意度95%
当然,下面是一个使用二分法查找的完整C语言程序示例:
```c
#include <stdio.h>
// 二分法查找函数
int binarySearch(int arr[], int left, int right, int target) {
while (left <= right) {
int mid = left + (right - left) / 2; // 计算中间元素的索引
// 如果目标值在中间,则返回索引
if (arr[mid] == target)
return mid;
// 如果目标值比中间元素小,则在左侧继续搜索
if (arr[mid] > target)
right = mid - 1;
// 如果目标值比中间元素大,则在右侧继续搜索
else
left = mid + 1;
}
// 如果找不到目标值,则返回-1
return -1;
}
int main() {
int arr[] = {2, 5, 8, 12, 16, 23, 38, 56, 72, 91};
int n = sizeof(arr) / sizeof(arr[0]); // 计算数组长度
int target = 23;
int result = binarySearch(arr, 0, n - 1, target);
if (result == -1)
printf("目标值 %d 不存在于数组中\n", target);
else
printf("目标值 %d 存在于数组的索引 %d\n", target, result);
return 0;
}
```
在上面的示例中,我们首先定义了一个`binarySearch`函数来执行二分法查找。该函数接受一个已排序的整数数组`arr`,搜索范围的左索引`left`,搜索范围的右索引`right`,以及要查找的目标值`target`。函数使用一个循环来不断缩小搜索范围,直到找到目标值或确定目标值不存在为止。
在`main`函数中,我们创建了一个已排序的整数数组`arr`,并计算数组的长度。然后,我们调用`binarySearch`函数来查找目标值23,并将结果存储在`result`变量中。最后,我们根据`result`的值输出相应的信息。
希望这个示例能够帮助你理解二分法查找在C语言中的实现。如果你有任何其他问题,请随时提问!
阅读全文