1. 问题描述
对n个整数进行全排列
【输入形式】在屏幕上输入若干个整数,各数间都以一个空格分隔。
【输出形式】按照顺序每行输出一种排列方式
【样例输入】
1 2 3
【样例输出】
[1 2 3]
[1 3 2]
[2 1 3]
[2 3 1]
[3 2 1]
[3 1 2]
【样例说明】
输入:三个整数,分别为1,2,3,以空格分隔。
输出:按照顺序每行输出一种排列方式,以方括号开始和结尾。
【评分标准】根据输入得到准确的输出
2. 问题分析
2.1 这个算法的思路就是:
- 一个集合要排列出所有情况,我们先确定排列结果中第一位的所有情况;
- 然后,再用相同的方法确定下一位,因此可以使用递归的方式来解决这个问题;
2.2 递归函数:
def Perm(arr, start, end):
递归函数中含三个参数,arr:数组;start:起始索引;size:数组所含元素数(也可以理解为结束索引+1);- 递归结束的条件,当start和end相同时候;
- 具体实现及讲解在代码及注释中;