C++程序:查找数组中的最小(或最大)元素


在这个问题中,我们得到一个包含n个整数的数组arr[]。我们的任务是编写一个C++程序来查找数组中的最小和最大元素。

问题描述 − 这里,我们有一个数组arr[],包含n个整数值。我们必须找到数组中所有值中的最大值和最小值。

让我们举个例子来理解这个问题:

输入

arr[] = {2, 1, 6, 9, 4, 10, 15, 21}

输出

max = 21 , min = 1

解决方案方法

这个问题可能有几种解决方案:

一种解决方案是直接比较数组的元素。这是通过检查数组的每个元素,然后使用比较来查找最大值和最小值来完成的。

这可以使用两种不同的方法来完成:

  • 迭代方法
  • 递归方法

解决问题的迭代方法:

我们将遍历数组,提取数组的每个元素,并将其与数组的最大和最小元素进行比较。

程序说明了我们解决方案的工作原理:

示例

 在线演示

#include <iostream>
using namespace std;
void getMinMax(int arr[] , int N){
   int max = arr[0], min = arr[0];
   for(int i = 1; i < N; i++){
      if(max < arr[i])
         max = arr[i];
      if(min > arr[i])
         min = arr[i];
   }
   cout<<"Maximum Value = "<<max<<"\n";
   cout<<"Minimum Value = "<<min;
}
int main(){
   int arr[] = {2, 1, 6, 9, 4, 10, 15, 21};
   int N = 8;
   getMinMax(arr, N);
   return 0;
}

输出

Maximum Value = 21
Minimum Value = 1

解决问题的递归方法:

在这种方法中,我们将通过反复调用方法来查找数组所有元素的最大值和最小值。

程序说明了我们解决方案的工作原理:

示例

 在线演示

#include <iostream>
using namespace std;
int CalcMinValue(int arr[], int n) {
   return (n == 1) ? arr[0] : min(arr[n - 1], CalcMinValue(arr, n - 1));
}
int CalcMaxValue(int arr[], int n) {
   return (n == 1) ? arr[0] : max(arr[n -1], CalcMinValue(arr, n - 1));
}
int main() {
   int arr[] = {2, 1, 6, 9, 4, 10, 15, 21};
   int N = 8;
   cout<<"Maximum Value = "<<CalcMaxValue(arr, N)<<endl;
   cout<<"Minimum Value = "<<CalcMinValue(arr, N);
   return 0;
}

输出

Maximum Value = 21
Minimum Value = 1

这个问题也可以使用C++编程语言标准模板库中提供的内置函数来解决。

查找解决方案的方法是min_element()和max_element(),这些方法可以在C++中的bits/stdc++.h库中找到。

程序说明了问题的解决方案:

示例

 在线演示

#include <bits/stdc++.h>
using namespace std;
int main() {
   int arr[] = {2, 1, 6, 9, 4, 10, 15, 21};
   int N = 8;
   cout<<"Maximum Value = "<<(*max_element(arr, arr+N))<<endl;
   cout<<"Minimum Value = "<<(*min_element(arr, arr+N));
   return 0;
}

输出

Maximum Value = 21
Minimum Value = 1

更新于:2020年9月15日

12K+ 次浏览

开启您的职业生涯

通过完成课程获得认证

开始学习
广告