您的位置:首页 > 其它

STL快速全排列函数next_permutation与pre_permutation

2017-05-20 16:50 351 查看
头文件:

#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,同时重新设置该排列为最小字典序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: