码迷,mamicode.com
首页 > 其他好文 > 详细

关于全排列

时间:2019-02-01 13:04:53      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:很多   操作   algorithm   perm   next   div   class   size   space   

嗯...

 

关于全排列,有很多种种做法...

 

嗯....

 

那什么叫全排列呢??!!

 

从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。(来自度娘

 

在这里介绍全排列,主要是引进c++种STL库中的鬼畜东西:

 

next_permutation        prev_permutation

 

这两个东西很冷门....但对于全排列来时却是十分好用....

 

下面就结合着代码做一道全排列来介绍这两个东西:

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<algorithm>
 4 
 5 using namespace std;
 6 
 7 int n,z[1234];
 8 
 9 int main()
10 {
11     cin >> n;
12     for (int a=1;a<=n;a++)
13         z[a] = a;
14     //注意在用 next_permutation和prev_permutation都要用do-while 循环,因为它不管是否满足,都要先将当前的排列进行一次输出操作 
15     do
16     {
17         for (int a=1;a<=n;a++)
18             cout << z[a] << " "; 
19         cout << endl;
20     }while (next_permutation(z+1,z+n+1));//右端点多1,左闭右开 
21 }

 

好,上面主要介绍了next_permutation ,那么prev_permutation 是什么呢???

 

其实prev_permutation 就是与next_permutation做相反操作  

 

next_permutation 为找到当前下一个的排列是什么
prev_permutation 为找到当前上一个的排列是什么

 

可以自己调试一下....

 

关于全排列

标签:很多   操作   algorithm   perm   next   div   class   size   space   

原文地址:https://www.cnblogs.com/New-ljx/p/10345396.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!