সমস্যা বিবৃতি
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