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

C++ STL-এ Prev_Permutation বাস্তবায়ন: পূর্ববর্তী পারমুটেশন

C++ STL-এ prev_permutation ফাংশনটি একটি রেঞ্জের উপাদানগুলোকে লেক্সিকোগ্রাফিক্যালি ছোট পারমুটেশন-এ পুনর্বিন্যাস করে। একটি N উপাদানের N! সম्भাব্য পারমুটেশন থাকে। এই ফাংশনটি বর্তমান পারমুটেশন থেকে ঠিক আগের পারমুটেশনে চলে যায়।

এলগরিদম

শুরু
  ইন্টিজার অ্যারে elements[] ঘোষণা করুন
  উপাদান সংখ্যা e ইনপুট নিন
  কীবোর্ড থেকে e সংখ্যক ডেটা দিয়ে elements[] ইনিশিয়ালাইজ করুন
  সব উপাদান সর্ট করুন (আরোহী ক্রমে)
  অ্যারে রিভার্স করুন (নিম্নক্রমে আনার জন্য)
  দো-হোল লুপ:
    show(elements)  // বর্তমান পারমুটেশন দেখান
  যতক্ষণ (prev_permutation(elements, elements + e))
শেষ

উদাহরণ কোড

#include <iostream>
#include <algorithm>
using namespace std;

void show(int a[], int n) {
    for (int i = 0; i < n; i++)
        cout << a[i] << " ";
    cout << endl;
}

int main() {
    int e, i;
    cout << "Enter number of elements to be inserted: ";
    cin >> e;
    int elements[e];

    for (i = 0; i < e; i++) {
        cout << "Enter " << i + 1 << " element: ";
        cin >> elements[i];
    }

    sort(elements, elements + e);      // আরোহী ক্রমে সাজানো
    reverse(elements, elements + e);   // নিম্নক্রমে আনা (সবচেয়ে বড় পারমুটেশন)

    cout << "The " << e << "! possible permutations with " << e << " elements:" << endl;

    do {
        show(elements, e);
    } while (prev_permutation(elements, elements + e));

    return 0;
}

নমুনা আউটপুট (ইনপুট: 7, 6, 10, 2)

Enter number of elements to be inserted: 4
Enter 1 element: 7
Enter 2 element: 6
Enter 3 element: 10
Enter 4 element: 2
The 4! possible permutations with 4 elements:
10 7 6 2
10 7 2 6
10 6 7 2
10 6 2 7
10 2 7 6
10 2 6 7
7 10 6 2
7 10 2 6
7 6 10 2
7 6 2 10
7 2 10 6
7 2 6 10
6 10 7 2
6 10 2 7
6 7 10 2
6 7 2 10
6 2 10 7
6 2 7 10
2 10 7 6
2 10 6 7
2 7 10 6
2 7 6 10
2 6 10 7
2 6 7 10

নোট: prev_permutation ব্যবহার করতে হলে অ্যারেটি নিম্নক্রমে (সবচেয়ে বড় পারমুটেশন) থেকে শুরু করতে হয়। ফাংশনটি false রিটার্ন করলে আর কোনো ছোট পারমুটেশন নেই।

  1. C++ STL-এ Set Union বাস্তবায়ন: দুটি সেটের ইউনিয়ন

  2. C++ STL-এ Set Symmetric Difference বাস্তবায়ন

  3. C++ STL-এ Set Intersection বাস্তবায়ন: দুটি সেটের অন্তঃসেট

  4. C++ STL-এ Set Difference বাস্তবায়ন: সেট বিয়োগ