用C语言帮我些一个数组的二分查找算法
时间: 2023-07-24 11:01:02 浏览: 81
实验十二------顺序和二分查找算法
当然可以帮你编写一个用C语言实现的数组二分查找算法。以下是示例代码:
```c
#include <stdio.h>
int binarySearch(int arr[], int target, int left, int right) {
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target)
return mid;
if (arr[mid] < target)
left = mid + 1;
else
right = mid - 1;
}
return -1;
}
int main() {
int arr[] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 12;
int index = binarySearch(arr, target, 0, n - 1);
if (index != -1)
printf("Element %d found at index %d\n", target, index);
else
printf("Element not found in the array\n");
return 0;
}
```
这个二分查找算法接受一个已经排好序的数组 `arr`,目标值 `target`,以及数组的左右边界 `left` 和 `right`。它会在数组中查找目标值,并返回目标值的索引,如果不存在则返回 -1。
在上面的示例代码中,我们定义了一个包含整数的数组 `arr`,然后计算数组的大小 `n`。我们要查找的目标值为 12。使用 `binarySearch` 函数进行二分查找,并打印结果。
希望这个示例代码能帮助到你!如果有任何疑问,请随时提问。
阅读全文