全排列
【概念阐述】
从 n 个不同元素中任取m(m≤n)个元素,按照一定的顺序排列,叫做从n个不同元素中取出m个元素的一个排列,当 m=n 时所有的排列情况叫全排列。
例如:
1 、2 、3三个元素的全排列为:
{1,2,3},{1,3,2},{2,1,3},{2,3,1},{3,1,2},{3,2,1}
【求全排列】
【问题阐述】:输入一个数列,求解该数列的全排列
【算法实现】:求解全排列可以通过(1)生成树(2)递归(3)STL函数实现
#include <stdio.h>//递归法实现
void Perm(int *a,int n);
int num;
void change(int *a, int i);
void print(int *a);
int main()
{
printf("请输入你要要全排序的元素个数:");
scanf("%d",&num);
int a[num];
printf("\n请输入你要全排序的各个元素:");
for(int i=0;i<num;i++)
scanf("%d",&a[i]);
Perm(a, num);
return 0;
}
void Perm(int *a,int n)
{
int i;
if(n ==