【组合生成】字典序法生成下一个全排列
来源:互联网 发布:hp什么意思网络用语 编辑:程序博客网 时间:2024/05/16 07:29
算法什么的以后再搬了,先把代码搬上来。
#include <iostream>#include <vector>#include <algorithm> using namespace std;class Permutation{private:int length;vector<int> v;public:Permutation(int l){length = l;v.resize(l+1);for(int i=0;i<l;++i)v[i] = i+1;}bool next(){int p = 0;for(int i=length-1;i>=0;--i)if(i+1<length && v[i] < v[i+1]){p = i;break;}int max = -1;for(int i=p;i<length;++i){if(v[i] > v[p] && ( max<0 ||v[i] < v[max] ))max = i;}if(max == -1)return false;swap(v[p],v[max]);reverse(v.begin()+p+1,v.end()-1);return true;}friend ostream & operator << (ostream &o,const Permutation &p){for(int i=0;i<p.length;++i)o << p.v[i] << " ";o << endl;return o;} };int main(){Permutation *P = new Permutation(4);cout << *P << endl; for(int i=0;i<=40;++i){if(P->next() == false)break;cout << *P << endl; }return 0;}
- 【组合生成】字典序法生成下一个全排列
- 字典序法生成全排列
- 字典序法生成全排列算法
- 字典序法生成全排列
- 生成字典序全排列
- 字典序全排列生成算法
- 全排列生成算法之字典序
- 全排列字典序生成算法
- 生成字典序的全排列
- 全排列的生成算法 字典序法
- 字典序法生成全排列算法的证明
- 全排列生成法(6种),字典序
- 字典序法生成全排列算法的证明
- 全排列的生成算法:字典序法
- 字典序法生成全排列算法的证明
- 全排列的生成算法:字典序法
- 生成全排列、非全排列、组合
- 字典序法生成排列
- closest 用法
- 【MST】MST唯一性
- tmg 2010 Microsoft Forefront Threat Management Gateway 奇怪问题
- Struts2权威指南总结3:Struts2基础
- 准备远程培训环境
- 【组合生成】字典序法生成下一个全排列
- Android 9.png格式图片制作
- 贪心算法_活动安排问题
- 【杂项】按照给定序列为基准进行排序
- JAVA 静态的应用-工具类
- Struts2权威指南总结4:深入struts2
- 【拓扑】拓扑排序----记某张图的分崩离析
- 二维码在线生成图片PHP源代码
- 【树状数组】区间修改&点查询