STL में next_permutation का उपयोग रेंज [first, last] में तत्वों को अगले लेक्सिकोग्राफिकली बड़े क्रमपरिवर्तन में पुनर्व्यवस्थित करने के लिए किया जाता है। एक क्रमपरिवर्तन उन N! संभावित व्यवस्थाओं में से प्रत्येक है जो तत्व ले सकते हैं। यह STL में Next_permutation को लागू करने के लिए एक C++ प्रोग्राम है।
एल्गोरिदम
Begin
एक पूर्णांक सरणी वेरिएबल elements[] परिभाषित करें।
उपयोगकर्ता से डेटा की संख्या e प्राप्त करें।
सरणी elements[] को कीबोर्ड से e संख्या के डेटा से इनिशियलाइज़ करें।
सभी सरणी तत्वों को सॉर्ट करें।
do
show(elements, e) // सरणी की वर्तमान सामग्री प्रदर्शित करने के लिए
while (next_permutation(elements, elements + e))
End
उदाहरण कोड
#include <iostream>
#include <algorithm>
using namespace std;
void show(int a[], int n) {
for(int i = 0; i < n; i++) {
cout << a[i] << " ";
}
cout << endl;
}
int main() {
int e, i;
cout << "Enter number of elements to be inserted: ";
cin >> e;
int elements[e];
for (i = 0; i < e; i++) {
cout << "Enter " << i + 1 << " element: ";
cin >> elements[i];
}
sort(elements, elements + e);
cout << "The " << e << "! possible permutations with ";
cout << e << " elements: " << endl;
do {
show(elements, e);
} while (next_permutation(elements, elements + e));
return 0;
}
आउटपुट
Enter number of elements to be inserted: 4
Enter 1 element: 7
Enter 2 element: 6
Enter 3 element: 2
Enter 4 element: 10
The 4! possible permutations with 4 elements:
2 6 7 10
2 6 10 7
2 7 6 10
2 7 10 6
2 10 6 7
2 10 7 6
6 2 7 10
6 2 10 7
6 7 2 10
6 7 10 2
6 10 2 7
6 10 7 2
7 2 6 10
7 2 10 6
7 6 2 10
7 6 10 2
7 10 2 6
7 10 6 2
10 2 6 7
10 2 7 6
10 6 2 7
10 6 7 2
10 7 2 6
10 7 6 2