c语言二分法查找函数
时间: 2024-09-26 21:00:22 浏览: 42
c语言 二分法查找
4星 · 用户满意度95%
二分查找,也称为折半查找,是一种在有序数组中搜索特定值的算法。它通过反复将搜索范围减半来提高查找效率。下面是使用C语言编写的一个基本二分查找函数的例子:
```c
#include <stdio.h>
// 定义二分查找函数
int binarySearch(int arr[], int left, int right, int target) {
if (right >= left) {
int mid = left + (right - left) / 2; // 计算中间位置
// 如果目标值等于中间值,返回中间索引
if (arr[mid] == target)
return mid;
// 如果目标值小于中间值,在左半边继续查找
else if (arr[mid] > target)
return binarySearch(arr, left, mid - 1, target);
// 否则,在右半边继续查找
else
return binarySearch(arr, mid + 1, right, target);
}
// 如果找不到,返回-1表示未找到
return -1;
}
// 测试函数
int main() {
int array[] = {2, 3, 4, 10, 40};
int n = sizeof(array) / sizeof(array[0]);
int target = 10;
int result = binarySearch(array, 0, n - 1, target);
if (result != -1)
printf("Element found at index %d\n", result);
else
printf("Element not found in the array.\n");
return 0;
}
```
这个函数`binarySearch`接收一个排序后的整数数组、起始索引`left`、结束索引`right`以及要查找的目标值`target`。每次比较后,它会更新搜索范围并在左右两侧递归地查找直到找到目标值或搜索范围为空。
阅读全文