用C++写一个二分搜索的递归与非递归程序的伪代码
时间: 2023-10-20 12:07:35 浏览: 40
递归版本的伪代码:
```
int binarySearchRecursion(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 binarySearchRecursion(arr, low, mid - 1, target);
else // 目标值大于中间位置的值,搜索右边部分
return binarySearchRecursion(arr, mid + 1, high, target);
}
```
非递归版本的伪代码:
```
int binarySearchIteration(int arr[], int low, int high, int target) {
while (low <= high) { // 循环条件
int mid = low + (high - low) / 2; // 计算中间位置
if (arr[mid] == target) // 目标值与中间位置相等
return mid;
else if (arr[mid] > target) // 目标值小于中间位置的值,搜索左边部分
high = mid - 1;
else // 目标值大于中间位置的值,搜索右边部分
low = mid + 1;
}
return -1; // 未找到目标值
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)