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

C প্রোগ্রামে ম্যাট্রিক্সের কলামগুলোকে শূন্যের সংখ্যা অনুযায়ী সর্ট করা


ভূমিকা

একটি NxM ম্যাট্রিক্স দেওয়া থাকলে, প্রতিটি কলামে কতগুলো শূন্য (০) আছে সেটি গুনে কলামগুলোকে শূন্যের সংখ্যা অনুযায়ী সর্ট করতে হবে। কলাম নম্বর ১-ভিত্তিক (1-indexed) বিবেচনা করা হয়।

উদাহরণ

ইনপুট:
0 0 0
1 1 1
1 0 1

কলাম ১: ১টি শূন্য, কলাম ২: ০টি, কলাম ৩: ২টি
আউটপুট: 1 3 2

এলগরিদম

void sorting(int arr[row][col])
শুরু
  vector> count_zero
  প্রতিটি কলাম i এর জন্য:
    count = 0
    প্রতিটি সারি j এর জন্য: যদি arr[j][i] == 0 হয়: count++
    count_zero.push_back({count, i})
  count_zero সর্ট করুন (শূন্যের সংখ্যা অনুযায়ী)
  সর্ট করা পেয়ারের সেকেন্ড ভ্যালু + 1 প্রিন্ট করুন (১-ভিত্তিক ইন্ডেক্স)
শেষ

C++ প্রোগ্রাম উদাহরণ

#include 
#define ROW 3
#define COL 3
using namespace std;

void sorting(int arr[ROW][COL]) {
    vector> count_zero;
    for (int i = 0; i < COL; i++) {
        int count = 0;
        for (int j = 0; j < ROW; j++)
            if (arr[j][i] == 0) count++;
        count_zero.push_back({count, i});
    }
    sort(count_zero.begin(), count_zero.end());
    for (int i = 0; i < COL; i++)
        cout << count_zero[i].second + 1 << " ";
}

int main() {
    int array[ROW][COL] = {{0,0,0}, {1,1,1}, {1,0,1}};
    cout << "Sorted order of zeroes count is: ";
    sorting(array);
    return 0;
}

আউটপুট

Sorted order of zeroes count is: 1 3 2
  1. C প্রোগ্রামে ম্যাট্রিক্সকে ডায়াগোনালি নিচের দিকে প্রিন্ট করা

  2. C প্রোগ্রামে দেওয়া আকারের সর্বোচ্চ যোগফলযুক্ত সাব-ম্যাট্রিক্স বের করা

  3. C প্রোগ্রামে ২-ডি ম্যাট্রিক্সের কর্ণার উপাদান ও তাদের যোগফল বের করা

  4. C প্রোগ্রামে অ্যারেতে উপাদানগুলোর শেষ অকরেন্স রিলেটিভ অর্ডারে প্রিন্ট করা