在 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

回到顶部