【递归入门】全排列
此题为递归算法入门级别题,题目来源计科老班
题目描述
排列与组合是常用的数学方法。
先给一个正整数 ( 1 < = n < = 10 )
例如n=3,所有组合,并且按字典序输出:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
输入
输入一个整数n( 1<=n<=10)
输出
输出所有全排列
每个全排列一行,相邻两个数用空格隔开(最后一个数后面没有空格)
样例输入
3
样例输出
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
思路详解
首先从n个数中选出第一个数,将其排在第一个位置,并且标记其已经使用过。接着,第二位、第三位、第四位依次递归,直到n个数全部排列完成,输出结果。记住,递归返回时要释放标签。
代码
import java.util.Scanner;
public class Permutation {
int n;
int[] A;
boolean[] Mark