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

C++-এ বোগোসর্ট বা পারমুটেশন সর্ট (BogoSort or Permutation Sort)


এখানে আমরা আরেকটি সর্টিং অ্যালগরিদম দেখব যাকে বোগো সর্ট বলা হয়। এটিকে পারমুটেশন সর্ট, স্টুপিড সর্ট, স্লো সর্ট ইত্যাদিও বলা হয়। এই সর্টিং অ্যালগরিদম বিশেষভাবে অকার্যকর সর্টিং কৌশল। এটি জেনারেট এন্ড টেস্ট প্যারাডাইমের অধীনে পড়ে। এটি রিপিটেডলি একটি পারমুটেশন জেনারেট করে যতক্ষণ না সেটি সর্টেড হয়। ধারণাটি খুব সোজা। লিস্ট সর্টেড না হওয়া পর্যন্ত এলিমেন্টগুলো শাফল করুন।

অ্যালগরিদম

bogoSort(array, n)

Begin
    while the arr is not sorted, do
        shuffle arr
    done
End

উদাহরণ

#include<iostream>
#include<cstdlib>
using namespace std;
bool isSorted(int arr[], int n) { // চেক করুন লিস্ট সর্টেড কিনা
    while (--n > 1)
        if (arr[n] < arr[n - 1])
            return false;
    return true;
}
void shuffle(int arr[], int n) {
    for (int i = 0; i < n; i++)
        swap(arr[i], arr[rand() % n]);
}
void bogoSort(int arr[], int n){
    while (!isSorted(arr, n))
        shuffle(arr, n);
}
main() {
    int data[] = {54, 74, 98, 5, 98, 32, 20, 13, 35, 40};
    int n = sizeof(data)/sizeof(data[0]);
    cout << "Sorted Sequence ";
    bogoSort(data, n);
    for(int i = 0; i < n; i++){
        cout << data[i] << " ";
    }
}

আউটপুট

Sorted Sequence 5 13 20 32 35 40 54 74 98 98

  1. C++ প্রোগ্রাম ক্র্যাশ হওয়ার কারণসমূহ

  2. C++ প্রোগ্রাম: অ্যারে উপাদানগুলোর গুণফল বের করা

  3. C++-এ অক্টাল থেকে ডেসিমেল কনভার্সন প্রোগ্রাম

  4. বোগোসর্ট / পারমিউটেশন সর্টের পাইথন প্রোগ্রাম