******fighting******
#include<algorithm>
next_permutation():求下一个排列组合
prev_permutation():求上一个排列组合
eg:{a,b,c}的下一个排列组合是{a,c,b},则{a,c,b}的上一个排列组合是{a,b,c}
(1)
int a[3]={1,2,3};
next_permutation(a,a+3)如果存在下一个排列组合,返回true,否则返回false。
参数:需要全排列的起始地址、终止地址
(2)
string str="aabbbccc";
do
{
......
}
while(next_permutation(str.begin(),str.end()));
注意:首先对于待全排列的序列,如果是{2,1,3},则next_permutation()最后一个排序是{3,2,1},即序列中的每个元素组成的数字呈升序排列,因此不会出现{1,2,3}这种比{2,1,3}小的序列。同理,还以{2,1,3}为例,对于prev_permutation()而言,最后一个排序是{1,2,3},呈降序排列,不会出现比{2,1,3}还大的序列。