समस्या कथन
क्रम n*n के वर्ग मैट्रिक्स को देखते हुए, मैट्रिक्स से अधिकतम और न्यूनतम खोजें
उदाहरण
यदि दिया गया मैट्रिक्स है -
{{15, 17, 19}, {5, 1, 7}, {14, 5, 16}}
then
Minimum number is 1 and maximum number is 19 एल्गोरिदम
- मैट्रिक्स से दो तत्वों का चयन करें एक मैट्रिक्स की एक पंक्ति की शुरुआत से दूसरा मैट्रिक्स की एक ही पंक्ति के अंत से
- उनकी तुलना करें और फिर उनमें से छोटे की तुलना न्यूनतम मैट्रिक्स से करें और उनमें से बड़े की तुलना अधिकतम मैट्रिक्स से करें।
- हम देख सकते हैं कि दो तत्वों के लिए हमें 3 तुलना की आवश्यकता है, इसलिए पूरे मैट्रिक्स को पार करने के लिए हमें कुल 3/2n 2 की आवश्यकता है तुलना
उदाहरण
आइए अब एक उदाहरण देखें -
#include <bits/stdc++.h>
#define MAX 200
using namespace std;
void getMinMax(int matrix[MAX][MAX], int n) {
int min = INT_MAX;
int max = INT_MIN;
for (int i = 0; i < n; ++i) {
for (int j = 0; j <= n / 2; ++j){
if (matrix[i][j] > matri[i][n - j - 1]) {
if (min > matrixi][n - j - 1]) {
min = marix[i][n - j -1];
}
if (max < matrixi][j]) {
max = marix[i][j];
}
} else {
if (min > matrixi][j]) {
min = marix[i][j];
}
if (max < matrixi][n - j - 1]) {
max = marix[i][n - j - 1];
}
}
}
}
cout << "Maximum = " << max << ", Minimu = " << min << endl;
}
int main() {
int matrix[MAX][MAX] = { {15, 17, 19}, {5, 1, 7}, {14, 5, 16} };
getMinMax(matrix, 3);
return 0;
} आउटपुट
Maximum = 19, Minimum = 1