博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
全排列
阅读量:7223 次
发布时间:2019-06-29

本文共 751 字,大约阅读时间需要 2 分钟。

       今天学了个叫全排列的东西:next_permutation(start,end),和prev_permutation(start,end)。头文件是#include <algorithm>

next_permutation(start,end):求的是当前排列的下一个排列。

prev_permutation(start,end):求的是当前排列的上一个排列。

很懵逼对吧,下面是实例:

#include 
#include
using namespace std;int main(){ int num[3]={
1,2,3}; do { cout<
<<" "<
<<" "<
<

输出:

1 2 3

1 3 2

2 1 3

2 3 1

3 1 2

3 2 1

 

while(next_permutation(num,num+3))中的3改为2时,输出就变为了:

1 2 3

2 1 3

 

另外,需要强调的是,next_permutation()在使用前需要对欲排列数组按升序排序,否则只能找出该序列之后的全排列数。比如,如果数组num初始化为2,3,1,那么输出就变为了:

2 3 1

3 1 2

3 2 1

此外,next_permutation(node,node+n,cmp)可以对结构体num按照自定义的排序方式cmp进行排序。

 

转载于:https://www.cnblogs.com/RootVount/p/10420139.html

你可能感兴趣的文章
OpenResty 反向代理的用法与技巧
查看>>
ie浏览器下出现SCRIPT5:拒绝访问
查看>>
ionic入门之数据绑定显示-1
查看>>
mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
查看>>
MyCAT水平分库
查看>>
基于django的视频点播网站开发-step3-注册登录功能 ...
查看>>
进程与线程(三)——进程/线程间通信
查看>>
扩展资源服务器解决oauth2 性能瓶颈
查看>>
数据可视化之下发图实践
查看>>
如何用纯 CSS 创作一个记事本翻页动画
查看>>
微信公众平台生成二维码海报是如何做到的?
查看>>
2017-11-28 在线编程网站对中文代码的支持
查看>>
浅谈k8s cni 插件
查看>>
AES加密算法的JAVA实现
查看>>
面试系列-高并发之synchronized
查看>>
JAVA8给我带了什么——lambda表达
查看>>
我们在编写python代码时应该注意那几件事 !
查看>>
微软工程师认为 Mozilla 也应该拥抱 Chromium
查看>>
论文笔记系列-Neural Architecture Search With Reinforcement Learning
查看>>
使用文本框TextView/EditText的开源库清单
查看>>