কম্পিউটার টিউটোরিয়াল

C++-তে ম্যাট্রিক্সের প্রতিটি ডায়াগোনাল উপাদান আরোহী ক্রমে সর্ট করার প্রোগ্রাম


মনে করুন n x m ম্যাট্রিক্স Mat আছে, আমাদের এটি ডায়াগোনালি আরোহী ক্রমে সর্ট করতে হবে উপরের বাম থেকে নিচের ডান দিকে।

ইনপুট এবং আউটপুট ম্যাট্রিক্সের টেবিল দেওয়া আছে।

সমাধানের ধাপসমূহ

  • solve() মেথড সংজ্ঞায়িত করুন যা si, sj এবং mat নেয়
  • n := সারি সংখ্যা, m := কলাম সংখ্যা
  • temp নামক অ্যারে তৈরি করুন
  • i:= si, j := sj, index := 0
  • যখন i < n এবং j < m,
    • m[i][j] temp-এ যোগ করুন, i এবং j ১ করে বাড়ান
  • temp অ্যারে সর্ট করুন
  • index := 0, i := si, j := sj
  • যখন i < n এবং j < m
    • mat[i][j] := temp[index]
    • i, j, index ১ করে বাড়ান
  • মূল মেথড থেকে:
    • n := সারি, m := কলাম
    • i = 0 থেকে n-1 পর্যন্ত, solve(i, 0, mat)
    • j = 1 থেকে m-1 পর্যন্ত, solve(0, j, mat)
    • mat ফেরত দিন

উদাহরণ

#include 
using namespace std;
void print_vector(vector> v){
    cout << "[";
    for(int i = 0; i> &mat){
        int n = mat.size();
        int m = mat[0].size();
        vector temp;
        int i = si;
        int j = sj;
        int idx = 0;
        while(i < n && j < m){
            temp.push_back(mat[i][j]);
            i++; j++;
        }
        sort(temp.begin(), temp.end());
        idx = 0;
        i = si; j = sj;
        while(i < n && j < m){
            mat[i][j] = temp[idx];
            i++; j++; idx++;
        }
    }
    vector> diagonalSort(vector>& mat) {
        int n = mat.size();
        int m = mat[0].size();
        for(int i = 0; i > v = {{3,3,1,1},{2,2,1,2},{1,1,1,2}};
    Solution ob;
    print_vector(ob.diagonalSort(v));
}

ইনপুট

{{3,3,1,1},{2,2,1,2},{1,1,1,2}}

আউটপুট

[[1, 1, 1, 1, ], [1, 2, 2, 2, ], [1, 2, 3, 3, ],]
  1. অ্যারেকে আরোহী ক্রমে সাজানোর C প্রোগ্রাম

  2. সি প্রোগ্রামে দশ উপাদানের অ্যারে আরোহী ক্রমে সাজানো

  3. C++-এ দিয়ে যেকোনো ম্যাট্রিক্স ডায়াগোনাল ম্যাট্রিক্সে কনভার্ট করা

  4. C++-এ ডায়াগোনাল এবং স্ক্যালার ম্যাট্রিক্স যাচাই করার প্রোগ্রাম