c语言写二分法源代码
时间: 2024-10-18 10:22:02 浏览: 35
当然可以。二分查找是一种在有序数组中查找特定元素的高效算法,它通过不断将搜索范围减半来提高查找速度。以下是简单的 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, 3, 4, 10, 40};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 10;
int result = binarySearch(arr, 0, n - 1, target);
if (result != -1)
printf("Element found at index %d", result);
else
printf("Element not found in the array");
return 0;
}
```
在这个例子中,`binarySearch` 函数接收一个排序好的整数数组、左边界 `left`、右边界 `right` 和要查找的目标值。如果找到目标值,返回它的索引;如果没有找到,返回 -1。
阅读全文