博客
关于我
基于递归的全排列
阅读量: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/

你可能感兴趣的文章
mysql 实现主从复制/主从同步
查看>>
mysql 审核_审核MySQL数据库上的登录
查看>>
mysql 导入 sql 文件时 ERROR 1046 (3D000) no database selected 错误的解决
查看>>
mysql 导入导出大文件
查看>>
MySQL 导出数据
查看>>
mysql 将null转代为0
查看>>
mysql 常用
查看>>
MySQL 常用列类型
查看>>
mysql 常用命令
查看>>
Mysql 常见ALTER TABLE操作
查看>>
MySQL 常见的 9 种优化方法
查看>>
MySQL 常见的开放性问题
查看>>
Mysql 常见错误
查看>>
mysql 常见问题
查看>>
MYSQL 幻读(Phantom Problem)不可重复读
查看>>
mysql 往字段后面加字符串
查看>>
mysql 快照读 幻读_innodb当前读 与 快照读 and rr级别是否真正避免了幻读
查看>>
MySQL 快速创建千万级测试数据
查看>>
mysql 快速自增假数据, 新增假数据,mysql自增假数据
查看>>
MySql 手动执行主从备份
查看>>