数据结构c语言实现设计一个递归算法,实现二分查找设计一个递归算法,实现二分查找
时间: 2024-05-12 08:15:24 浏览: 163
二分查找的递归算法可以按照以下步骤实现:
1. 定义一个递归函数,函数输入为一个已排好序的数组、要查找的元素、数组的起始位置和终止位置。
2. 计算中间位置 mid,如果查找元素等于数组中 mid 位置的元素,则返回 mid。
3. 如果查找元素小于数组中 mid 位置的元素,则在数组左半部分继续查找,即递归调用函数,传入数组、要查找的元素、起始位置和中间位置 - 1。
4. 如果查找元素大于数组中 mid 位置的元素,则在数组右半部分继续查找,即递归调用函数,传入数组、要查找的元素、中间位置 + 1 和终止位置。
5. 如果起始位置大于终止位置,则表示数组中不存在要查找的元素,返回 -1。
以下是具体的 C 语言实现代码:
```c
int binarySearch(int arr[], int x, int left, int right) {
if (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == x) {
return mid;
} else if (arr[mid] > x) {
return binarySearch(arr, x, left, mid - 1);
} else {
return binarySearch(arr, x, mid + 1, right);
}
}
return -1;
}
```
其中,arr 表示已排好序的数组,x 表示要查找的元素,left 表示数组的起始位置,right 表示数组的终止位置。初始调用时,left 应该为 0,right 应该为数组长度减一。
阅读全文