用C语言编写一个二分法的通用函数
时间: 2024-05-08 18:21:57 浏览: 12
下面是一个用C语言编写的通用二分法函数:
```c
#include <stdio.h>
int binarySearch(int arr[], int l, int r, int x) {
while (l <= r) {
int mid = l + (r - l) / 2;
if (arr[mid] == x) {
return mid;
} else if (arr[mid] < x) {
l = mid + 1;
} else {
r = mid - 1;
}
}
return -1;
}
int main() {
int arr[] = {1, 3, 5, 7, 9};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 7;
int result = binarySearch(arr, 0, n - 1, x);
if (result == -1) {
printf("Element not found\n");
} else {
printf("Element found at index %d\n", result);
}
return 0;
}
```
该函数接受一个整数数组,数组的左边界和右边界,以及要查找的元素。它使用while循环,在左右边界之间进行二分查找。如果找到元素,返回其索引;否则,返回-1。
在主函数中,我们创建一个整数数组,使用sizeof运算符获取数组的大小,并在数组中查找元素7。如果找到元素,则输出其索引;否则,输出"Element not found"。