用 C 语言写个二分法
时间: 2023-05-28 22:04:11 浏览: 64
以下是一个简单的 C 语言二分法实现:
```c
#include <stdio.h>
int binarySearch(int arr[], int l, int r, int x) {
if (r >= l) {
int mid = l + (r - l)/2;
if (arr[mid] == x)
return mid;
if (arr[mid] > x)
return binarySearch(arr, l, mid-1, x);
return binarySearch(arr, mid+1, r, x);
}
return -1;
}
int main(void) {
int arr[] = {2, 4, 6, 8, 10, 12, 14, 16};
int n = sizeof(arr)/ sizeof(arr[0]);
int x = 12;
int result = binarySearch(arr, 0, n-1, x);
if (result == -1)
printf("元素不在数组中");
else
printf("元素在数组中的索引为 %d", result);
return 0;
}
```
在这个例子中,我们定义了一个名为 `binarySearch()` 的函数来实现二分查找。它接受一个整数数组、左右边界和要查找的元素。如果该元素存在于数组中,则返回其索引;否则返回 -1。
在 `main()` 函数中,我们创建了一个整数数组,然后调用 `binarySearch()` 函数来查找元素 12 的索引。如果它在数组中,则打印其索引;否则打印“元素不在数组中”。