यहां हम देखेंगे कि सी ++ में एक स्ट्रिंग के लेक्सिकोग्राफिक रूप से अगले क्रमपरिवर्तन को कैसे उत्पन्न किया जाए। लेक्सिकोग्राफिक रूप से अगला क्रमपरिवर्तन मूल रूप से अधिक से अधिक क्रमपरिवर्तन है। उदाहरण के लिए, "ACB" का अगला "BAC" होगा। कुछ मामलों में, लेक्सिकोग्राफ़िक रूप से अगला क्रमपरिवर्तन मौजूद नहीं है, जैसे "बीबीबी" या "डीसीबीए" आदि।
C++ में हम इसे next_permutation() नामक लाइब्रेरी फंक्शन का उपयोग करके कर सकते हैं। यह एल्गोरिथम हेडर फ़ाइल में मौजूद है।
उदाहरण
#include <iostream>
#include <algorithm>
using namespace std;
main() {
string s = "DBAC";
for(int i = 0; i<5; i++) {
bool val = next_permutation(s.begin(), s.end());
if (val == false) {
cout << "No next permutation" << endl;
break;
} else
cout << "Next: " << s << endl;
}
} आउटपुट
Next: DBCA Next: DCAB Next: DCBA No next permutation