二分查找函数C语言程序
时间: 2024-08-12 20:06:52 浏览: 38
二分查找(Binary Search),也称为折半查找,是一种在有序数组中查找特定元素的搜索算法。它的基本思想是每次比较中间元素与目标值,然后根据比较结果决定是在左半部分还是右半部分继续查找。下面是简单的二分查找函数在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;
} else if (arr[mid] < target) { // 如果中间值小于目标,查找右半部分
left = mid + 1;
} else { // 如果中间值大于目标,查找左半部分
right = mid - 1;
}
}
return -1; // 如果没有找到目标值,返回-1
}
int main() {
int arr[] = {1, 3, 5, 7, 9, 11, 13, 15};
int size = sizeof(arr) / sizeof(arr);
int target = 9;
int result = binarySearch(arr, 0, size - 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`函数接受一个已排序的整数数组`arr`、两个索引`left`和`right`作为查找范围,以及一个目标值`target`。如果找到目标值,函数返回该值的索引;否则,返回-1表示未找到。
阅读全文