ที่นี่เราจะมาดูวิธีการสร้างการเปลี่ยนแปลงลำดับถัดไปของ lexicographically string ใน C ++ การเรียงสับเปลี่ยนลำดับถัดไปโดยพื้นฐานแล้วเป็นการเรียงสับเปลี่ยนที่มากกว่า ตัวอย่างเช่น ตัวถัดไปของ “ACB” จะเป็น “BAC” ในบางกรณี การเรียงสับเปลี่ยนลำดับถัดไปจะไม่มีอยู่ เช่น “BBB” หรือ “DCBA” เป็นต้น
ใน 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