博客
关于我
基于递归的全排列
阅读量:486 次
发布时间:2019-03-07

本文共 401 字,大约阅读时间需要 1 分钟。

基于一组数1, 2, 3, …, n,我们可以生成它们的全排列。这种方法本质上是递归的,具体步骤如下:

当处理到第一个数1时,全排列只有一种可能,即1。

当处理到第二个数2时,可以选择将其插入到1之前或之后。这样,2的全排列有两种情况:12和21。

随后,当处理到第三个数3时,我们需要在现有的排列基础上逐一插入,并根据插入的空隙数量生成新的排列。例如,已经生成的排列12,有3个空隙可以插入3,分别生成312、132、123;而同理,排列21也会生成321、231、213。因此,第三个数3对应6种全排列。

这种递归的方式可以一直应用下去。只要在处理第k个数时,将其插入前k个空隙中的任意一个位置,然后递归处理剩下的k+1个位置,就可以逐一生成所有可能的排列。

通过上述方法,我们可以找出任何给定n的全排列集合。例如,对于n=4,通过这种方法可以得到24种排列结果,分别是1, 2, 3, 4的组合。

转载地址:http://rnccz.baihongyu.com/

你可能感兴趣的文章
MTCNN 人脸检测
查看>>
MyEcplise中SpringBoot怎样定制启动banner?
查看>>
MyPython
查看>>
MTD技术介绍
查看>>
MySQL
查看>>
MySQL
查看>>
mysql
查看>>
MTK Android 如何获取系统权限
查看>>
MySQL - 4种基本索引、聚簇索引和非聚索引、索引失效情况、SQL 优化
查看>>
MySQL - ERROR 1406
查看>>
mysql - 视图
查看>>
MySQL - 解读MySQL事务与锁机制
查看>>
MTTR、MTBF、MTTF的大白话理解
查看>>
mt_rand
查看>>
mysql -存储过程
查看>>
mysql /*! 50100 ... */ 条件编译
查看>>
mysql 1045解决方法
查看>>
mudbox卸载/完美解决安装失败/如何彻底卸载清除干净mudbox各种残留注册表和文件的方法...
查看>>
mysql 1264_关于mysql 出现 1264 Out of range value for column 错误的解决办法
查看>>
mysql 1593_Linux高可用(HA)之MySQL主从复制中出现1593错误码的低级错误
查看>>