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

你可能感兴趣的文章
mockcpp & testngpp在2010.7~11月的改进
查看>>
Modbus RTU和Modbus TCP之间的区别
查看>>
Model-Based Reinforcement Learning(基于模型的强化学习)详解-ChatGPT4o作答
查看>>
module 'requests' has no attribute 'get' python
查看>>
Moment.js
查看>>
moment.js常见格式化处理各种时间方法
查看>>
Moment.js常见用法总结
查看>>
MongoDB与Mysql常用命令解释
查看>>
MongoDB出现Error parsing command line: unrecognised option ‘--fork‘ 的解决方法
查看>>
mxGraph改变图形大小重置overlay位置
查看>>
MongoDB可视化客户端管理工具之NoSQLbooster4mongo
查看>>
Mongodb学习总结(1)——常用NoSql数据库比较
查看>>
MongoDB学习笔记(8)--索引及优化索引
查看>>
MongoDB学习笔记(四)--索引 && 性能优化
查看>>
mongodb定时备份数据库
查看>>
mongodb导出csv json
查看>>
MongoDB快速入门
查看>>
MongoDB插入数据的3种方法
查看>>
mongoDB教程(一):数据库简介
查看>>
mongoDB教程(十):导入、导出
查看>>