递归回溯打印全排列(两种方法求解)

本文介绍了如何使用递归和回溯方法解决全排列问题。针对给定的数n,列举1到n的所有可能排列组合。文章提供了两种不同的实现方式,包括选择+递归+回溯以及交换+递归+回溯,并给出了相应的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打印全排列问题:给定一个数n,要求打印123...n的所有全排列.例如n=4,则所有的全排列为:

1 2 3 4

1 2 4 3

1 3 2 4

1 3 4 2

1 4 2 3

1 4 3 2

......

4 1 2 3

一共4!=24个.

———————————————————————————————————————————————————

方法一:[选择+递归+回溯]

我们采用一种通俗易懂的方式,逐个打印所有排列.

思路:取数组a[],从a[1]开始到a[n],从1~n这n个数中选择一个数放在a[1],再选择下一个数,放在下一位a[2]......选过的数字标记为[选过]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值