目录
一、背景
求一个数据集的最大值和最小值是常见的数据处理任务之一,主要用于了解数据的范围和分布情况。原理非常简单:遍历整个数据集,记录当前遇到的最大值和最小值。
二、原理
初始化两个变量,一个用来存储最大值,另一个用来存储最小值。通常可以将最大值初始化为数据类型最小可能值,最小值初始化为数据类型最大可能值。
(1).遍历数据集中的每个元素。
(2).对每个元素:
(3).如果该元素大于当前记录的最大值,则更新最大值。
(4).如果该元素小于当前记录的最小值,则更新最小值。
(5).完成遍历后,最大值和最小值变量即为数据集中的最大值和最小值。
三、代码示例
3.1、代码示例1:
从以一组数据中找出最大值和最小值:
#include <iostream>
#include <vector>
#include <limits>
void findMinMax(const std::vector<int>& data, int& min, int& max) {
// 初始化最大值和最小值
min = std::numeric_limits<int>::max();
max = std::numeric_limits<int>::min();
for(int num : data) {
if(num > max) {
max = num;
}
if(num < min) {
min = num;
}
}
}
int main() {
std::vector<int> data = {10, 5, 3, 12, 7, 19, 2, 8};
int min, max;
findMinMax(data, min, max);
std::cout << "最小值: " << min << std::endl;
std::cout << "最大值: " << max << std::endl;
return 0;
}
3.2、代码示例2:
假设在处理一个温度传感器的数据集,想要知道一天中记录的最高和最低温度。可以使用上述代码来找到这些值,从而帮助你分析温度的波动情况。
int main() {
// 模拟一天中每小时的温度数据
std::vector<int> temperatureData = {22, 21, 20, 19, 23, 25, 26, 28, 31, 30, 27, 25, 24, 22, 20, 18, 17, 16, 15, 14, 13, 12, 11, 10};
int minTemp, maxTemp;
findMinMax(temperatureData, minTemp, maxTemp);
std::cout << "一天中的最低温度: " << minTemp << "°C" << std::endl;
std::cout << "一天中的最高温度: " << maxTemp << "°C" << std::endl;
return 0;
}
通过这种方式,我们可以快速找出数据集中最大和最小的值,并应用于各种领域的数据分析任务中。