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,同时重新设置该排列为最小字典序。
#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,同时重新设置该排列为最小字典序。
相关文章推荐
- STL中next_permutation函数快速上手
- STL之全排列next_permutation()函数的用法
- STL 中 next_permutation 的全排列思路
- hdu1027 全排列(STL函数next_permutation)
- NYOJ 366 D的小L(从小到大输出排列。STL,next_permutation()函数的学习)
- 计算下一个全排列(以STL中的next_permutation为例)
- 关于全排列 next_permutation() 函数的用法
- stl全排列 qsort+next_permutation(a,a+n) -->全排列
- 【STL】全排列生成算法:next_permutation
- HDOJ 1027 Ignatius and the Princess II(找出第m大排列,STL,next_permutation()函数的简单使用)
- C++STL中全排列函数next_permutation的使用
- C++ STL next_permutation() & prev_permutation()函数
- 全排列递归算法与STL:next_permutation()函数
- [STL]next_permutation全排列
- 快速学习stl(next_premutation)全排列;nyoj会排序的小明
- STL实现全排列 next_permutation
- stl全排列 qsort+next_permutation(a,a+n) -->全排列 .
- 7.2.1 生成1~n的排列(全排列)【STL__next_permutation()_的应用】
- 几个STL算法:includes,set_difference、set_intersection、set_symmetric_difference、set_union, pre_permutation, next_permutation
- STL源码——排列生成算法(next-permutation、pre-permutation)