STL中的next_permutation
2024-10-11 03:49:06
给定一个数组a[N],求下一个数组.
2 1 3 4
2 1 4 3
2 3 1 4
2 3 4 1
.....
在STL中就有这个函数:
1.参数是(数组的第一个元素,数组的末尾),注意这是前闭后开区间,(a,a+n)
2.返回值是bool型,表示这个数组是不是最后一个元素.
3.这个函数不仅可以实现n个互异的数的全排列,也能够生成组合数.如1 2 3 3 4 4 5 6 6这样数组的全排列.
4.第一个数组是升序排列,最后一个数组是降序排列.
,,,}; do{ re(i, )cout << a[i] << " "; puts(""); } ));
那么这个函数内部是如何实现的呢?
bool next(int*a, int sz){ ; && a[i] <= a[i - ])i--; )return false; ; ; while (j > i)swap(a[j--], a[i++]); i = pos + ; while (a[i] <= a[pos])i++; swap(a[i], a[pos]); return true; } int main(){ ,,,}; do{ re(i, )cout << a[i] << " "; puts(""); } )); ; }
输出一共12项.
最新文章
- Shell入门教程:流程控制(6)while 循环
- C++函数重载和函数模板
- Financial Management[POJ1004]
- B2B多商铺初期权限数据库设计
- linux设备驱动归纳总结(十):1.udev&;misc【转】
- Bash脚本15分钟进阶教程
- Learning Java language Fundamentals
- Windows 下启动Apache服务(转)
- JavaScript不可变原始值和可变的对象引用
- Hive 7、Hive 的内表、外表、分区(22)
- Mybatis --- 映射文件、参数处理、参数值的获取、select元素
- Adobe Acrobat pro生成PDF模版
- BZOJ3529: [Sdoi2014]数表
- Java进阶(二十三)java中long类型转换为int类型
- Spring MVC(三)控制器获取页面请求参数以及将控制器数据传递给页面和实现重定向的方式
- qqluxc
- [物理学与PDEs]第2章第2节 粘性流体力学方程组 2.1 引言
- 微信企业号-根据code获取成员信息(过期code)
- python 根据字符串内数字排序
- Linux下查/删/替 命令(转)