c语言中实现折半查找递归算法并调用
时间: 2024-03-17 08:46:31 浏览: 19
好的,下面是 C 语言中实现折半查找递归算法的示例代码:
```c
#include <stdio.h>
int binarySearchRecursive(int arr[], int left, int right, int target) {
if (left > right) {
return -1;
}
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
return binarySearchRecursive(arr, mid + 1, right, target);
} else {
return binarySearchRecursive(arr, left, mid - 1, target);
}
}
int main() {
int arr[] = {1, 3, 5, 7, 9};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 5;
int index = binarySearchRecursive(arr, 0, n - 1, target);
if (index != -1) {
printf("找到了,索引为 %d\n", index);
} else {
printf("没找到\n");
}
return 0;
}
```
以上代码实现了一个折半查找的递归算法,使用了递归的方式进行查找,时间复杂度为 O(log n)。在主函数中调用了 binarySearchRecursive 函数,并输出查找结果。注意要先定义好数组和目标值,然后传入函数中调用。