TypechoJoeTheme

IT技术分享

统计

排列——算法设计 · 篇九

2016-08-18
/
0 评论
/
641 阅读
/
正在检测是否收录...
08/18

一、递归方法求解序列的全排列

GitHub地址:递归方法求解序列的全排列.cpp

方法

1、固定第一个元素,求后面n-1个元素的排列
2、将第一个元素和第二个元素交换(两个字符不同才交换),固定第一个元素,求后面n-1个元素的排列
3、将第一个元素和第二个元素交换回来,然后第一个元素和第三个元素交换,求后面n-1个元素的排列
4、依次循环下去,循环的过程中,每一步求后面n-1个元素的排列都用到了递归

二、非递归方法求解序列的全排序

GitHub地址:非递归方法求解序列的全排序.cpp

假如字符串的元素能够进行比较

1、从后往前找一对相邻的元素,满足第一个元素 [i] 小于第二个元素 [i+1]
2、从后往前找第一个元素 [k],使得 [k] > [i] ,然后交换 [i] 和 [k]
3、反转 [i+1] 到末尾元素之间的闭区间

三、八皇后问题

GitHub地址:八皇后问题.cpp

是个全排列问题

朗读
赞 · 0
版权属于:

IT技术分享

本文链接:

https://idunso.com/archives/2200/(转载时请注明本文出处及文章链接)