在 C++ 中查找数组的最小和最大元素的递归程序
我们得到一个整数数组 Arr[] 作为输入。目标是使用递归方法在数组中找到最大和最小元素。
由于我们使用递归,我们将遍历整个数组,直到达到 length=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) 接受输入数组及其长度,并使用递归返回数组中的最小值。
取整数变量最小值
如果当前索引 len 为 1,则设置 minimum=arr[0] 并返回 minimum。
否则设置最小值 = arr[len] 或 recforMin(arr,len-1) 的最小值并返回它。
最后将返回最小元素。
打印在 main 中获得的结果。
寻找最小值
寻找最大值
以数组 Arr[] 作为输入。
函数 recforMax(int arr[], int len) 接受输入数组及其长度,并使用递归返回数组中的最大值。
取整数变量最大值。
如果当前索引 len 为 1,则设置 maximum=arr[0] 并返回最大值。
否则设置 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 <<"数组中的最小值:"<<recforMin(Arr, length);
return 0;
}
如果我们运行上面的代码,它将生成以下输出
数组中的最小值:-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 <<"数组中的最大值:"<<recforMax(Arr, length);
return 0;
}
如果我们运行上面的代码,它将生成以下输出
数组中的最大值:-100
以上是 在 C++ 中查找数组的最小和最大元素的递归程序 的全部内容, 来源链接: utcz.com/z/360428.html