折半查找递归算法
时间: 2023-06-29 10:13:47 浏览: 288
折半查找的递归算法
折半查找(Binary Search)也称为二分查找,是一种在有序数组中查找目标值的算法。它的基本思想是:在有序数组中,先找到中间位置的元素,将目标值与中间元素进行比较,如果目标值比中间元素小,则在左半部分继续查找;如果目标值比中间元素大,则在右半部分继续查找;如果目标值等于中间元素,则查找成功。
下面是折半查找的递归算法实现(假设数组已经按照升序排列):
```
int binarySearch(int arr[], int low, int high, int target) {
if (low > high) { // 查找失败
return -1;
}
int mid = low + (high - low) / 2; // 计算中间位置
if (arr[mid] == target) { // 查找成功
return mid;
} else if (arr[mid] > target) { // 在左半部分查找
return binarySearch(arr, low, mid - 1, target);
} else { // 在右半部分查找
return binarySearch(arr, mid + 1, high, target);
}
}
```
在这个递归函数中,`arr`是要查找的有序数组,`low`和`high`分别是数组的起始位置和结束位置,`target`是要查找的目标值。如果找到了目标值,就返回它在数组中的下标;如果没有找到,就返回-1表示查找失败。
阅读全文