#include <stdio.h>
int binarySearch(int arr[], int l, int r, int target) {
if (r >= l) {
int mid = l + (r - l) / 2;
// 如果目标元素在中间
if (arr[mid] == target)
return mid;
// 如果目标元素比中间元素小
if (arr[mid] > target)
return binarySearch(arr, l, mid - 1, target);
// 如果目标元素比中间元素大
return binarySearch(arr, mid + 1, r, target);
}
// 如果目标元素不存在
return -1;
}
int main() {
int arr[] = {2, 5, 7, 9, 12, 15, 18};
int target = 9;
int n = sizeof(arr) / sizeof(arr[0]);
int result = binarySearch(arr, 0, n - 1, target);
(result == -1) ? printf("目标元素不存在") : printf("目标元素在索引 %d 处", result);
return 0;
}上述代码演示了如何在C语言中实现简单的二分查找算法。通过将目标元素与数组的中间元素进行比较,可以确定目标元素在左半部分还是右半部分。然后,将搜索范围缩小到其中一半,直到找到目标元素或确定其不存在。
在主函数中,我们定义了一个有序整数数组arr和目标元素target。通过调用binarySearch函数来执行二分查找算法,将返回的结果存储在result变量中。根据结果判断目标元素是否存在于数组中,并输出相应的提示信息。
二分查找算法在搜索大量有序数据时非常高效,因为它每次都将搜索范围缩小一半,而不需要遍历整个数据集。在实际的软件开发中,这种算法经常被用于快速查找和搜索功能的实现。