এই অ্যালগরিদমটি একটি অ্যারে নেবে এবং অ্যারের বিষয়বস্তুগুলিকে এলোমেলো করবে৷ এটি অ্যারের উপাদানগুলির একটি র্যান্ডম স্থানান্তর তৈরি করবে৷
৷এই সমস্যা সমাধানের জন্য, আমরা শেষ সূচক থেকে শুরু করে অ্যারেতে এলোমেলোভাবে একটি সূচক তৈরি করতে উপাদানগুলিকে অদলবদল করব৷
ইনপুট এবং আউটপুট
Input: An array of integers: {1, 2, 3, 4, 5, 6, 7, 8} Output: Shuffle of array contents: 3 4 7 2 6 1 5 8 (Output may differ for next run)
অ্যালগরিদম
randomArr(array, n)
ইনপুট: অ্যারে, উপাদানের সংখ্যা।
আউটপুট: অ্যারের বিষয়বস্তু এলোমেলো করুন৷
৷Begin for i := n – 1 down to 1, do j := random number from 0 to i swap arr[i] and arr[j] done End
উদাহরণ
#include <iostream> #include<cstdlib> #include <ctime> using namespace std; void display(int array[], int n) { for (int i = 0; i < n; i++) cout << array[i] << " "; } void randomArr ( int arr[], int n ) { //generate random array element srand (time(NULL)); //use time to get different seed value to start for (int i = n-1; i > 0; i--) { int j = rand() % (i+1); //randomly choose an index from 0 to i swap(arr[i], arr[j]); //swap current element with element placed in jth location } } int main() { int arr[] = {1, 2, 3, 4, 5, 6, 7, 8}; int n = 8; randomArr(arr, n); display(arr, n); }
আউটপুট
4 7 8 2 6 3 5 1