当前位置: 首页 > news >正文

全排列思路

目录

省流版结论

推导过程

 输出结果(元素数量为4时)


省流版结论

(程序来源:排列组合之——全排列(c语言)_rewrite!的博客-CSDN博客_全排列)

一晚上的时间,终于弄懂了。真羡慕计算机的同学捏。

相当于:

然后,“回溯”指的是,在每次交换位置并进行输出后,把交换过的元素放回到原来的位置。这样有利于下一次交换位置。

推导过程

 以数组长度为4为例,一步一步推导:

1 2 3 4

1 2 4 3(输出后回溯到1 2 3 4这样的排列)

1 3 2 4

1 3 4 2(输出后先回溯到1 3 2 4这样的排列,再回溯到1 2 3 4这样的排列)

1 4 3 2

1 4 2 3(输出后先回溯到1 4 3 2这样的排列,再回溯到1 2 3 4这样的排列)

只推导到了这里,其实这时候已经明白逻辑了

下一次应该是2 1 3 4,再重复3和4交换,在回到2 1 3 4;然后先1和3交换变成2 3 1 4(以及1和4交换变成2 3 4 1),回到2 1 3 4;再1和4交换变成2 4 3 1......一看结果,果然是这样

 输出结果(元素数量为4时)

 

相关文章:

  • 网站备案万网/网络推广有哪些
  • 电子商务类网站模板/大庆建站公司
  • 浙江省建设建材工会网站/磁力bt种子搜索
  • asp做网站用什么写脚本/宁波网站快速优化
  • 怎样创建自己公司网站/搜索引擎入口
  • 你的安全设置不允许网站/网站推广的100种方法
  • 【檀越剑指大厂—SpringMVC】SpringMVC篇
  • 艾美捷硝酸盐/亚硝酸盐荧光法检测试剂盒基本参数说明
  • MySQL中 java 的 JDBC 编程使用方法及驱动包的下载和使用
  • 数据库实验2 数据库安全性定义与检查
  • Feign和restTemplate 单个接口超时拦截处理
  • 微信小程序自定义顶部状态栏
  • # 和 ## 运算符
  • as 汇编入门, hello world 显示
  • 【java】opencv + Tesseract(tess4j) 实现图片处理验证码识别
  • GAMES101 Assignment 3
  • 小学生C++编程基础 课程8(A)
  • 前沿系列--Transform架构[架构分析+代码实现]