const int N = 10;
int f[N],d[N];void init(int n) {for(int i=1; i<=n; i++)f[i]=i,d[i]=-1;
}void Print(int n) {for(int i=1; i<=n; i++)cout<<f[i]<<' ';cout<<endl;
}int fac(int n) {if(n==0||n==1)return 1;return n*fac(n-1);
}///改变方向
void Filp(int d[],int n,int x) {for(int i=x+1; i<=n; i++)d[i]*=-1;
}bool ok(int x,int n) {return 1<=x&&x<=n;
}///生成排列
void Johnson_Trotter(int f[],int n) {int num=fac(n);ans=0;while(num--) {Print();int th=0;for(int i=1; i<=n; i++) {if(ok(d[f[i]]+i,n)&&f[i]>f[d[f[i]]+i]&&f[i]>f[th])th=i;}Filp(d,n,f[th]);swap(f[th],f[d[f[th]]+th]);}
}

Johnson_Trotter 生成排列算法相关推荐

  1. johnson_trotter(生成排列算法)

    思路和步骤: 将数字赋予方向属性 理解什么叫可移动方向(后面在图片1中说明) 判断是否存在可移动元素 bool judge_move(init* n_n, int n); 定义一个全局int k--& ...

  2. Johnson-Trotter(生成排列算法)

    原理可以自己学习,实现如下,真的太久没用C++了. #include<iostream> #include<vector> using namespace std; struc ...

  3. php 实现的字典序排列算法,字典序的一个生成算法

    字典序的一个生成算法. 最近在LeetCode刷题,刷到一个题,链接: https://leetcode-cn.com/problems/permutation-sequence/ 这个题要求得长度为 ...

  4. C语言编写Johnson-Trotter算法生成排列

    //Johnson-Trotter算法生成排列#include<stdio.h>int list[99];在这里插入代码片 int num[99]; int dir[99];int cha ...

  5. 生成排列 --- 蛮力法,Johnson-Trotter算法

    生成排列 --- 蛮力法,Johnson-Trotter算法 蛮力法 Johnson-Trotter算法 蛮力法 思路: 通过递归遍历所有的排列方式. 代码演示: #include <iostr ...

  6. 用Johnson-Trotter算法生成排列!

    package decreaseAndConquer; /* * 实现用来生成排列的Johnson-Trotter算法 * 输入:一个正整数n * 输出:{1,...,n}的所有排列的列表 */ im ...

  7. 机器学习(二)——广义线性模型、生成学习算法

    http://antkillerfarm.github.io/ 逻辑回归(续) 注:Ronald Aylmer Fisher,1890-1962,英国人,毕业于剑桥大学.英国皇家学会会员.尽管他被称作 ...

  8. 组合数学 ch4 生成排列和组合

    1.生成排列 n个正整数组成的集合{1,2,...,n}有n!个排列 如何生成全排列? 组合数学新算法:交错插入法. 简单来说,一次次生成{1}到{1,2}到{1,2....n}所有的排列,用当前排列 ...

  9. android MD5校验码的生成与算法实现

    android MD5校验码的生成与算法实现 在Java中,java.security.MessageDigest (rt.jar中)已经定义了 MD5 的计算,所以我们只需要简单地调用即可得到 MD ...

最新文章

  1. SQL Server 2008连载之存储结构——基本系统视图
  2. 通过Java Api与HBase交互(转)
  3. C语言rand函数生成随机数详解和示例
  4. java 一对多 数据结构_请教一下,java 有没有什么数据结构可以保存一对多的关系的??...
  5. UITableView性能-圆角图片
  6. mfp服务器控制中心,固网1008MFP驱动
  7. Splunk 模式的中国践行者——日志易让日志分析更容易
  8. 计算机cdr教程,计算机平面设计案例教程 (Photoshop+CorelDRAW)
  9. 元宇宙如何改变人类社会生活。
  10. 石家庄地铁选站系统进度报告
  11. linux下tomcat性能调优
  12. manjaro pacman 使用方法总结
  13. FSAF:Feature Selective Anchor-Free Module for Single-Shot Object Detection笔记
  14. 【Python】—— pipenv使用小结
  15. 微信小程序绑定银行卡功能
  16. jvm设置http代理
  17. 淘宝店适合什么样引流方法?淘宝店应该如何引流?
  18. 路由url里多了%7D是怎么回事?
  19. 基于深度学习对皮肤病进行识别设计与实现
  20. mysql数据源配置

热门文章

  1. Sealed class密封类详解
  2. (翻译)Understanding Convolutional Neural Networks for NLP
  3. 初识大数据(二)医疗大数据
  4. 前端培训-javascript 的垃圾回收机制
  5. MVC是什么?优点?
  6. 手机6G运行内存和8G运行内存该如何选择?看完觉得买亏了
  7. 网络安全该从何入手?
  8. 【济州岛新任市长支持优秀ICO项目】
  9. Windows支持WGET命令
  10. android自动化测试辅助工具Weinre