কম্পিউটার

অ্যারে শাফলিংয়ের জন্য ফিশার-ইয়েটস অ্যালগরিদম বাস্তবায়নের জন্য C++ প্রোগ্রাম


ফিশার-ইয়েটস অ্যালগরিদম অ্যারের উপাদানগুলির একটি র্যান্ডম স্থানচ্যুতি তৈরি করে যেমন এটি একটি অ্যারের সমস্ত উপাদানকে এলোমেলোভাবে এলোমেলো করে দেয়৷ ফিশার-ইয়েটস অ্যালগরিদম নিরপেক্ষ হওয়ায় অ্যারের জন্য সমস্ত স্থানান্তর সমানভাবে সম্ভব৷

C++-এ অ্যারে শাফলিং-এর জন্য ফিশার-ইয়েটস অ্যালগরিদম বাস্তবায়নের জন্য একটি প্রোগ্রাম নিম্নরূপ দেওয়া হয়েছে -

উদাহরণ

#include <iostream>
#include <t;stdlib.h>
using namespace std;
int main() {
   int n;
   cout << "Enter the array size: "<<endl;
   cin >> n;

   int arr[n], arr1[n], index_arr[n];
   int index;
   cout << "Enter the array elements: "<<endl;
   for (int i = 0; i < n; i++)
   cin >> arr[i];
   for (int i = 0; i < n; i++)
   index_arr[i] = 0;
   for (int i = 0; i < n; i++) {
      do {
         index = rand() % n;
      }
      while (index_arr[index] != 0);
      index_arr[index] = 1;
      arr1[i] = arr[index];
   }
   cout<<"The shuffled array is: ";

   for (int i = 0; i < n; i++)
   cout << arr1[i] << " ";
   return 0;
}

আউটপুট

উপরের প্রোগ্রামের আউটপুট নিম্নরূপ

Enter the array size: 10
Enter the array elements: 1 2 3 4 5 6 7 8 9 10
The shuffled array is: 4 7 8 6 3 10 2 1 9 5

উপরের প্রোগ্রামে, ব্যবহারকারীর কাছ থেকে অ্যারের আকার এবং অ্যারের অনুরোধ করা হয়। এটি নীচে দেওয়া হল -

cout << "Enter the array size: "<<endl;
cin >> n;

int arr[n], arr1[n], index_arr[n];
int index;

cout << "Enter the array elements: "<<endl;

for (int i = 0; i < n; i++)
cin >> arr[i];

অ্যারে প্রাপ্ত হওয়ার পরে, index_arr[] 0 তে আরম্ভ করা হয়। তারপর rand() ফাংশনটি এলোমেলোভাবে arr[] এর মানগুলি arr1[]-এ সংরক্ষণ করতে ব্যবহৃত হয়। এটি নিম্নলিখিত কোড স্নিপেট −

দ্বারা প্রদর্শিত হয়
for (int i = 0; i < n; i++) {
do {
   index = rand() % n;
}
while (index_arr[index] != 0);
index_arr[index] = 1;
arr1[i] = arr[index];
}

অবশেষে এলোমেলো অ্যারে প্রদর্শিত হয়। এটি নীচে দেখা যাচ্ছে -

cout<<"The shuffled array is: ";

for (int i = 0; i < n; i++)
cout << arr1[i] << " ";

  1. C++ ব্যবহার করে অ্যারে রোটেশনের জন্য রিভার্সাল অ্যালগরিদম

  2. সর্বোত্তম পৃষ্ঠা প্রতিস্থাপন অ্যালগরিদমের জন্য C++ প্রোগ্রাম

  3. অ্যারের উপাদানগুলির গুণনের জন্য C++ প্রোগ্রাম

  4. সাজানো অ্যারে বাস্তবায়নের জন্য C++ প্রোগ্রাম