C++中使用递归程序查找数组的最小值和最大值
我们以整数数组Arr[]作为输入。目标是使用递归方法查找数组中的最大和最小元素。
由于我们使用递归,我们将遍历整个数组直到长度为1,然后返回A[0]作为基本情况。否则,将当前元素与当前最小值或最大值进行比较,并通过递归更新后续元素的值。
让我们看看这个的各种输入输出场景:
输入 - Arr= {12,67,99,76,32};
输出 - 数组中的最大值:99
说明 - 在所有元素中,99 是最大的。
输入 - Arr= {1,0,-99,9,3};
输出 - 数组中的最小值:-99
说明 - 在所有元素中,-99是最小的。
下面程序中使用的方法如下:
查找最小值
将数组Arr[]作为输入。
函数recforMin(int arr[], int len)接收输入数组及其长度,并使用递归返回数组中的最小值。
获取整数变量minimum。
如果当前索引len为1,则设置minimum=arr[0]并返回minimum。
否则,设置minimum = arr[len] 或 recforMin(arr,len-1) 的最小值,并返回它。
最后将返回最小元素。
在main函数内部打印结果。
查找最小值
查找最大值
将数组Arr[]作为输入。
函数recforMax(int arr[], int len)接收输入数组及其长度,并使用递归返回数组中的最大值。
获取整数变量maximum。
如果当前索引len为1,则设置maximum=arr[0]并返回maximum。
否则,设置maximum = arr[len] 或 recforMax(arr,len-1) 的最大值,并返回它。
最后将返回最大元素。
在main函数内部打印结果。
使用递归查找最小值
示例
#include <iostream>
using namespace std;
int recforMin(int arr[], int len){
int minimum;
if (len == 1){
minimum=arr[0];
return minimum;
}
else{
return minimum=arr[len]<recforMin(arr,len-1)?arr[len]:recforMin(arr,len-1);
}
}
int main(){
int Arr[] = {-89,98,76,32,21,35,100};
int length = sizeof(Arr)/sizeof(Arr[0]);
cout <<"Minimum in the array :"<<recforMin(Arr, length);
return 0;
}输出
如果我们运行上面的代码,它将生成以下输出:
Minimum in the array :-89
使用递归查找最小值
示例
#include <iostream>
using namespace std;
int recforMax(int arr[], int len){
int maximum;
if (len == 1){
maximum=arr[0];
return maximum;
}
else{
return maximum=arr[len]>recforMax(arr,len-1)?arr[len]:recforMax(arr,len-1);
}
}
int main(){
int Arr[] = {-89,98,76,32,21,35,100};
int length = sizeof(Arr)/sizeof(Arr[0]);
cout <<"Maximum in the array :"<<recforMax(Arr, length);
return 0;
}输出
如果我们运行上面的代码,它将生成以下输出:
Maximum in the array :-100
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP