递归算法及经典递归例子代码实现

2019-12-30 11:55:41于丽

  如1,2,3三个元素的全排列为:

  1,2,3

  1,3,2

  2,1,3

  2,3,1

  3,1,2

  3,2,1 


//全排列
inline void Swap(int &a,int &b)
{
	int temp=a;
	a=b;
	b=temp;
}
void Perm(int list[],int k,int m)
{
	if (k == m-1) 
	{
		for(int i=0;i<m;i++)
		{
			printf("%d",list[i]);
		}
		printf("n");
	}
	else
	{
		for(int i=k;i<m;i++)
		{
			Swap(list[k],list[i]); 
			Perm(list,k+1,m);
			Swap(list[k],list[i]); 
		}
	}
}