यह एल्गोरिथम एक सरणी लेगा और सरणी की सामग्री को फेरबदल करेगा। यह सरणी तत्वों का एक यादृच्छिक क्रमपरिवर्तन उत्पन्न करेगा।
इस समस्या को हल करने के लिए, हम पिछले इंडेक्स से शुरू होने वाले तत्वों को सरणी में यादृच्छिक रूप से जेनरेट किए गए इंडेक्स में बदल देंगे।
इनपुट और आउटपुट
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