书上算法排列问题

思想:排列问题最主要是Perm()函数,例如一个很简单的例子如下:
数列是:1 2 3
当n=1时,则递归出口,换种说法就是当n=m时,也就是数列中只剩下一个数的时候,则表示交换已经结束,此时需要把这一排打印出来。
当n<m时,说明没有交换结束,则继续交换下去,但是需要注意的是,当每次我交换完之后,也是就递归结束时,我需要把数列还原为原来的数列,不然,在进行交换输出后会得不到全部,而且还会有重复;
下面我以1 2 3为例举例子然后进行理解理解:
第一次:1 2 3为本身,因为一开始都是本身和本身进行交换,所以在递归结束后,交换后缀还是本身。
第二次:1Perm(2,3);也就是1被分割出去,然后进行交换2和3;变为1 3 2
。。。。。。。。。。。。。以此下去;;;;;;
     1 2 3
1      2       3

2 3     1 3     1 2

3  2    3  1    2   1 
#include<stdio.h>
#include<iostream>
#include&l
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值