c++全排列

一、概念

  从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。如果这组数有n个,那么全排列数为n!个。

  比如a,b,c的全排列一共有3!= 6 种 分别是{a, b, c}、{a, c, b}、{b, a, c}、{b, c, a}、{c, a, b}、{c, b, a}。

二、常用操作

  1.头文件

#include <algorithm>

  2.使用方法

  

  下排列next_permutation(arr,arr+n);如果说arr不存在下一个排列,那么它将返回0,否者返回1,并更新数组

  上排列prev_permutation(arr,arr+n):同理.......

.函数功能: 返回值为bool类型,当当前序列不存在下一个排列时,函数返回false,否则返回true,排列好的数在数组中存储

注意:在使用前需要对欲排列数组按升序排序,否则只能找出该序列之后的全排列数。
    比如,如果数组num初始化为2,3,1,那么输出就变为了:{2 3 1} {3 1 2} {3 2 1}

猜你喜欢

转载自www.cnblogs.com/Accepting/p/11222799.html