码迷,mamicode.com
首页 > 编程语言 > 详细

递归实现全排列算法-161029

时间:2016-10-29 12:13:18      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:实现   循环   blank   tar   bsp   数组   n个元素   元素   nbsp   

算法要点:

n个元素的全排列:一个元素放在最前方,剩下n-1个元素的全排列

出口:当就剩下一个元素需要全排列的时候,把数组打印出来就行了

http://blog.csdn.net/xiazdong/article/details/7986015------------写的比黑皮书好致敬!

没想明白的地方:当一个元素需要全排列时,这时候打印数组,说明这个时候数组整个就已经被改变了。

所以在之前,应该做 把一个元素放在最前方, 在之后,把数组恢复成原来的样子

所以要用swap函数

perm(type list[],int begin,int end)

*for()------用循环

      依次把每个元素放到前面

        然后全排列剩下的

     恢复数组本来的样子,方便下次循环的时候把其他的元素放到第一位,这样不会出现重复

161029

     

递归实现全排列算法-161029

标签:实现   循环   blank   tar   bsp   数组   n个元素   元素   nbsp   

原文地址:http://www.cnblogs.com/Cherrylalala/p/6010140.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!