头文件:
#include<algorithm>
using namespace std;
用法:
对于一个大小为n的数组,调用next_permutation(a,a+n)可以得到数组a的下一个排列
调用pre_permutation(a,a+n)可以得到上一个全排列
分析next_permutation函数执行过程:
假设数列 d1,d2,d3,d4……
范围由[first,last)标记,调用next_permutation使数列逐次增大,这个递增过程按照字典序。例如,在字母表中,
abcd的下一单词排列为abdc,但是,有一关键点,如何确定这个下一排列为字典序中的next,而不是next->next->next……
一旦排列到达最大字典序,比如dcba,就返回false,同时重新设置该排列为最小字典序。