JOHNSON TROTTER 的全排列算法

本文探讨了JohnsonTrotter算法的基本思想与实现步骤。通过分析数组与标记数组的使用,讨论了如何实现数字的移动与交换过程。此外,文中还提到了算法结束条件的判断依据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 /*试一试Johnson Trotter的算法*/

/*

  数组初始为123
  标记数组b【】的初始值是011(0 不可移动,1否)
  /要不利用二维数组……?/
  b【】中找值为一的
  然后看对应的的lxs【】 数组中的值是不是最大的
  计数
  找到最大的
  将其和相邻的比其小的数字交换
  利用指针……?
  什么作为结束标志呢……?
  然后找到该数组中比他大的元素
  将其对应的b【】中的值×(-1)
  再继续从最后一个开始
  进行前面的循环
 
 /
 其实寻找算法的原因无非就是把所有情况都列出来,像这样没有递归调用的方法
 就可以实现对每一计数了
 那是不是每一步都有解呢……
 到最后倒不动的时候
 可能就结束了
 那怎么标记结束呢……
 
 还是看的算法不多
 啊啊
 呵呵
 继续看吧~!
 找些小的程序来编编……先看算法
 还是一遍学算法一边试着编程……
 啊
 思考……
 
 /
*/
#include<stdio.h>

#include<stdlib.h>

main()

{
 
}

/*待续了 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值