//Johnson-Trotter算法生成排列#include<stdio.h>int list[99];在这里插入代码片
int num[99];
int dir[99];int change(int list[],int i,int j)
{int temp=list[i];list[i]=list[j];list[j]=temp;return 0;
}int Print(int list[],int n)
{for (int i=0; i<n;i++){printf("%d ",list[i]);}printf("\n");return 0;
}int Arrange(int list[],int n)
{for (int i=0;i<n;i++){num[i]=0;dir[i]=1;}int j=n-1,s=0;Print(list, n);while(true) {int q=num[j]+dir[j];if (q>=0&&q!=j+1) {change(list,j-num[j]+s,j-q+s);Print(list,n);num[j]=q;j=n-1;s=0;continue;}if(q= =j+1) {if(j==0)break;elses++;}dir[j]=-dir[j];j--;}return 0;
}int main()
{int n;printf("输入排列的个数:");scanf("%d",&n);for (int i=0;i<n;i++){list[i]=i+1;}Arrange(list, n);return 0;
}

C语言编写Johnson-Trotter算法生成排列相关推荐

  1. 算法设计与分析——Johnson Trotter算法

    目录 前言 一.算法思想分析 二.算法效率分析 三.算法代码 C语言代码 后记 前言 排列与组合问题,无论是在我们生活中还是项目实际运用中,都说非常之常见的.那么,如何去运用算法思想生成全排列(一组元 ...

  2. 高光谱图像分类python语言编写 改进lstm算法

    高光谱图像分类python语言编写 改进lstm算法 改进的思想是高光谱图像存在同物易谱和异物同谱现象,导致原始的光谱信息在反映地物类别上不够准确,因此通过结合像元的类别信息,定义一个误差损失函数,求 ...

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

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

  4. 用Java语言编写的特殊算法

    package three; /** 字符操作* 特殊乘法* 写个算法对于两个小于1000000000的输入,求特殊乘法的结果* 特殊乘法举例:123*45 = 1*4+1*5+2*4+2*5+3*4 ...

  5. C语言编写PID基础算法

    PID的作用为将系统输出快速稳定于某一个值 #include <stdio.h> #include <stdlib.h> #include <math.h>/*pi ...

  6. VB通过洗牌算法生成随机数ID

    Visual Basis开发语言通过洗牌算法生成UUID. 1.在Visual Studio中创建一个桌面应用程序用于代码的测试,点击"洗牌算法"按钮式触发算法运算,并将运算结果回 ...

  7. 生成随机序列的算法c语言,一个C语言编写的不重复随机序列算法

    一个C语言编写的不重复随机序列算法 最近一直搞数据库,很久没摸C语言,都快忘了.为了练手,前段时间一个没有完成的产生不重复随机序列的算法重写一遍. C语言没有随机种子值的概念,所以产生一个随机.不重复 ...

  8. c语言找出最大值和最小值并按降序排输出,C语言用排序法给十个数降序排列,用C语言编写,输入10个数按降序排列...

    问题标题 C语言用排序法给十个数降序排列,用C语言编写,输入10个数按降序排列 2019-6-4来自ip:14.161.145.86的网友咨询 浏览量:562 手机版 问题补充: C语言用排序法给十个 ...

  9. johnson_trotter(生成排列算法)

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

最新文章

  1. Flutter 制作一个具有酷炫液体滑动效果的酷炫入门页面
  2. [Trie] Luogu P2992 [USACO08DEC]秘密消息Secret Message
  3. CF785E Anton and Permutation
  4. 蓝点linux_新闻速读 gt; Windows 10 的 Linux 内核将像驱动程序一样由微软更新服务进行更新 | Linux 中国...
  5. 前端学习(2442):解决跨域问题
  6. linux命令怎么调wsdl,如何从命令行执行SOAP wsdl Web服务调用
  7. thinkphp导航高亮的方法
  8. Linux服务器非root用户下安装CUDA11.1和cudnn到指定目录
  9. 文档下载:《Oracle 20c和19c的新特性解密》
  10. linux日志报multipath,linux device mapper multipath 驱动的路径聚合
  11. 章节十一、1-Junit介绍
  12. 2019高考数学必考知识点,高考数学知识板块
  13. C语言:从低位开始取出长整型变量s奇数位上的数,依次构成一个新数放在t中。
  14. Docker搭建ElasticSearch
  15. Spring Security(一):最简单的Spring Security程序
  16. VB完全控制IE浏览器,操作ie对象,响应ie事件
  17. 利用python处理pdf文本_Python用于NLP :处理文本和PDF文件
  18. IIS或Apache部署Django项目时,Admin后台管理CSS样式丢失?
  19. 2020 Leetcode 春季赛战队赛 题目汇总
  20. 简单观察HoudiniAssetComponent状态(AssetState)的变化过程

热门文章

  1. 字符串之间的大小比较方法
  2. c语言如何比较字符串的大小
  3. 日期间隔计算器-计算两个日期之间相差多少天-计算某天之后的多少天是几号计算器
  4. C语言中的if、else if 的用法和区别
  5. ISM330DHCXTR IMU-惯性测量单元 工业物联网 运动传感器
  6. 牛客OR36 .链表的回文结构
  7. 计算机科学与技术8G够,高手们.请问8G物理内存设置多少虚拟内存适合
  8. paper 77:[转载]ENDNOTE使用方法,常用!
  9. onkeypress 、onkeyup 与onkeydown三者之间的区别
  10. DNS与HTTPDNS