写一个二分查找的c语言代码
时间: 2024-10-03 14:04:39 浏览: 33
当然可以,这里是一个简单的二分查找(Binary Search)算法的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 arr[] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
int size = sizeof(arr) / sizeof(arr[0]);
int target = 10;
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` 函数接收一个数组、数组的左右边界以及目标值作为参数。它首先计算中间索引,然后比较目标值与中间元素,根据大小关系递归地缩小搜索范围直到找到目标或确定目标不在数组中。
阅读全文