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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP