next_permutation( ) 和prev_permutation( ) 全排列函数

Posted 山杉三

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了next_permutation( ) 和prev_permutation( ) 全排列函数相关的知识,希望对你有一定的参考价值。

头文件#include <algorithm>

两者都是用来计算排列组合的函数。前者是求出下一个排列组合,而后者是求出上一个排列组合。

所谓“下一个”和“上一个”,有一个例子;

对序列 {a, b, c}, a > b >c,它的下一个序列即为{a, c, b},而{a, c, b}的上一个序列即为{a, b, c},同理可以推出所有的六个序列为:{a, b, c}、{a, c, b}、{b, a, c}、{b, c, a}、{c, a, b}、{c, b, a},其中{a, b, c}没有上一个元素,{c, b, a}没有下一个元素

使用

next_permutation( (start,end );

用next_permutation和prev_permutation求排列组合很方便,但是要记得包含头文件#include <algorithm>。

 虽然最后一个排列没有下一个排列,用next_permutation会返回false,但是使用了这个方法后,序列会变成字典序列的第一个,

如cba变成abc。prev_permutation同理

以上是关于next_permutation( ) 和prev_permutation( ) 全排列函数的主要内容,如果未能解决你的问题,请参考以下文章

[OI - STL] next_permutation( ) & prev_permutation( )函数

STL中关于全排列next_permutation以及prev_permutation的用法

next_permutation 与 prev_permutation(全排列算法)

next_permutation( ) 和prev_permutation( ) 全排列函数

STL next_permutation 算法原理和自行实现

STL next_permutation 算法原理和自行实现