C++程序 查找正方形矩阵中的最大值和最小值
给定一阶为n的正方形矩阵,在该矩阵中查找最大值和最小值。
示例:
输入: arr[][] = {5, 4, 9,
2, 0, 6,
3, 1, 8};
输出: 最大值 = 9,最小值 = 0
输入: arr[][] = {-5, 3,
2, 4};
输出: 最大值 = 4,最小值 = -5
朴素法:
我们使用线性搜索分别查找矩阵的最大值和最小值。查找最小值需要n 2 次比较,查找最大值需要n 2 次比较。总比较次数等于2n 2 。
输出
成对比较(高效方法):
从矩阵中选择两个元素,一个是矩阵行的开头,另一个是同一行的末尾,比较它们,然后将它们中较小的比较矩阵中的最小值,大的比较矩阵中的最大值。我们可以看到对于两个元素,我们需要3次比较,因此对于遍历整个矩阵,我们需要总共3/2 n 2 次比较。
注意:
这是数组的最大最小值的第3种方法的扩展形式。
输出:
时间复杂度:O(n^2)
辅助空间:O(1) 因为没有额外的空间被占用。