生成一个二分查找 C++
时间: 2023-05-26 15:00:58 浏览: 53
二分查找是一种高效的搜索算法,可以在有序数组中查找特定元素。
以下是一个实现二分查找的 C 代码示例:
```c
#include <stdio.h>
// 二分查找函数,需要输入有序数组,数组长度和需要查找的目标值
int binarySearch(int arr[], int n, int target)
{
int left = 0, right = n - 1;
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[] = {2, 5, 8, 12, 16, 23, 38, 56, 72, 91};
int n = sizeof(arr) / sizeof(*arr);
int target = 23;
int index = binarySearch(arr, n, target);
if (index == -1) {
printf("未找到目标值 %d\n", target);
} else {
printf("目标值 %d 在数组中的下标为 %d\n", target, index);
}
return 0;
}
```
该代码实现了一个名为 `binarySearch` 的函数,它接收一个有序数组、数组长度和目标值,返回目标值在数组中的下标,如果未找到则返回 -1。
在 `main` 函数中,我们声明了一个有序数组,然后调用 `binarySearch` 函数查找数组中的目标值 23。如果找到了,输出目标值在数组中的下标;如果未找到,输出未找到目标值的提示信息。