在 C++ 中查找数组的最小和最大元素的递归程序
我们得到一个整数数组Arr[]作为输入。目标是使用递归方法在数组中找到最大和最小元素。
由于我们使用递归,我们将遍历整个数组,直到达到length=1,然后返回A[0],这构成了基本情况。否则将当前元素与当前的最小值或最大值进行比较,并通过递归为后面的元素更新其值。
让我们看看这个的各种输入输出场景-
输入 -Arr={12,67,99,76,32};
输出 -数组中的最大值:99
说明 -在所有元素中,其中99是最大的。
输入 -Arr={1,0,-99,9,3};
输出 -数组中的最小值:-99
说明-在所有元素中-99是其中的最小值。
下面程序中使用的方法如下
寻找最小值
以数组Arr[]作为输入。
函数recforMin(intarr[],intlen)接受输入数组及其长度,并使用递归返回数组中的最小值。
取整数变量最小值
如果当前索引len为1,则设置minimum=arr[0]并返回minimum。
否则设置最小值=arr[len]或recforMin(arr,len-1)的最小值并返回它。
最后将返回最小元素。
打印在main中获得的结果。
寻找最小值
寻找最大值
以数组Arr[]作为输入。
函数recforMax(intarr[],intlen)接受输入数组及其长度,并使用递归返回数组中的最大值。
取整数变量最大值。
如果当前索引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