我正在寻找一种方法来查找C++中二维整数数组的最大值和最小值。我知道
可以通过以下方式声明和初始化2D数组:
一个简单的方法是像这样做:
但这似乎并不是很优化。有人能给一些建议或提出更好的想法吗?
std::max_element()
和std::min_element()
,但它们似乎只适用于一维数组。可以通过以下方式声明和初始化2D数组:
int temp[5][5];
for(int x = 0; x < 5; x++)
{
for(int y = 0; y < 5; y++)
{
temp[x][y] = some_random_number;
}
}
一个简单的方法是像这样做:
int min = high_number;
int max = low_number;
for(int x = 0; x < 5; x++)
{
for(int y = 0; y < 5; y++)
{
if(temp[x][y] < min)
{
min = temp[x][y];
}
if(temp[x][y] > max)
{
max = temp[x][y];
}
}
}
但这似乎并不是很优化。有人能给一些建议或提出更好的想法吗?
std::minmax_element
的复杂度比std::min_element
+std::max_element
低。分别为3/2
和2
。 - Jarod42