用C语言将折半查找法改写为递归算法。
时间: 2024-02-22 11:58:53 浏览: 86
chazhao.rar_折半查找 递归算法
5星 · 资源好评率100%
好的,折半查找法的递归实现如下:
```c
int binarySearchRecursive(int arr[], int low, int high, int target) {
if (low > high) {
return -1; // 找不到目标元素
}
int mid = (low + high) / 2;
if (arr[mid] == target) {
return mid; // 找到目标元素
} else if (arr[mid] > target) {
return binarySearchRecursive(arr, low, mid - 1, target); // 在左半部分继续查找
} else {
return binarySearchRecursive(arr, mid + 1, high, target); // 在右半部分继续查找
}
}
```
其中,`arr` 为要查找的数组,`low` 和 `high` 分别为数组的起始下标和结束下标,`target` 为要查找的目标元素。
在递归实现中,首先判断 `low` 是否大于 `high`,如果是,则说明查找失败,返回 `-1`。否则,计算中间位置 `mid`,如果 `arr[mid]` 等于 `target`,则说明找到了目标元素,返回 `mid`。如果 `arr[mid]` 大于 `target`,则在左半部分继续查找;否则,在右半部分继续查找。
阅读全文