এই অ্যালগরিদম একটি অ্যারে নেবে এবং এর কন্টেন্ট শাফেল করবে। এটি অ্যারে এলিমেন্টের একটি র্যান্ডম পারমুটেশন জেনারেট করবে।
এই সমস্যা সমাধান করতে, আমরা লাস্ট ইন্ডেক্স থেকে শুরু করে এলিমেন্ট সোয়াপ করব র্যান্ডমলি জেনারেট করা একটি ইন্ডেক্সের সাথে।
ইনপুট এবং আউটপুট
ইনপুট: একটি ইন্টিজার অ্যারে: {1, 2, 3, 4, 5, 6, 7, 8}
আউটপুট: অ্যারে কন্টেন্ট শাফেল: 3 4 7 2 6 1 5 8 (নেক্সট রানে আউটপুট ভিন্ন হতে পারে)অ্যালগরিদম
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উদাহরণ (C++)
#include#include #include 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) { srand(time(NULL)); for (int i = n-1; i > 0; i--) { int j = rand() % (i+1); swap(arr[i], arr[j]); } } 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