按字典序输出数组的全排列

该博客介绍如何按照字典序输出1到n的全排列。通过定义next_permutation函数,利用升序查找、交换和逆序操作,逐步生成下一个排列。博主最初采用递归实现,但为避免栈溢出改用循环。文章提供了具体算法和代码示例。
摘要由CSDN通过智能技术生成
Description

 输入一个数字n,输出从1~n组成的数字的全排列,每个排列占一行,输出按照数值升序排列

比如输入2,则输出是:

12

21

又如输入3,则输出是:

123

132

213

231

312

321

Input

 第一行是一个整数m,代表有m个测试用例

接下来的m行,每行是一个整数n,0 < n < 10

Output

 对于每个用例,输出它的全排列,每个排列占一行,输出按照数值升序排列


思路:

我定义了一个函数next_permutation来计算下一字典序,算法如下:

1)先从后往前找到一对升序组,设其坐标为a和a&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值