ที่นี่เราจะมาดูวิธีการสร้างการเปลี่ยนแปลงลำดับถัดไปของ 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