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

সি++-এ অ্যালেকজান্ডার বোগোমলনি'র আনঅর্ডার্ড পারমিউটেশন অ্যালগরিদম


একটি সংখ্যা N দেওয়া আছে। ১ থেকে N পর্যন্ত সংখ্যাগুলোর সকল পারমিউটেশন (অনুক্রম) বের করতে হবে অ্যালেকজান্ডার বোগোমলনি'র আনঅর্ডার্ড পারমিউটেশন অ্যালগরিদম দিয়ে।

পারমিউটেশন কী? একটি সেটের আইটেমগুলোর ইউনিক অর্ডারিং। {4,9,2} এর পারমিউটেশন: ৬টি।

ইনপুট

N = 3

আউটপুট

1 2 3; 1 3 2; 2 1 3; 2 3 1; 3 1 2; 3 2 1

এলগরিদম

1. ফাংশন(array, N, k) রিকারসিভ কল
2. লেভেল বেড়ান, বাকি মানগুলো পারমিউট করুন
3. লেভেল == N হলে প্রিন্ট করুন

উদাহরণ কোড

#include <iostream> 
using namespace std; 

int level = -1;

void AlexanderBogomolyn(int perm[], int N, int k){
    level++; perm[k] = level;
    if(level == N){
        for(int i=0; i

আউটপুট

All permutations of 1..4 printed (24 lines)

  1. সি/সি++-এ বারkeley-এর অ্যালগরিদম

  2. C++ তে বেলম্যান-ফোর্ড অ্যালগরিদম (Bellman Ford Algorithm)

  3. C++ প্রোগ্রাম: অ্যালেকজান্ডার বগোমোলনির আনঅর্ডারড পারমুটেশন অ্যালগরিদম বাস্তবায়ন (১ থেকে N এলিমেন্ট)

  4. সি++-এ লেক্সিকোগ্রাফিকালি পরবর্তী পারমিউটেশন (Lexicographically Next Permutation)