问题: 利用递归实现 1-4 4个数字的全排列
代码如下:
#include"stdio.h"
#include "iostream.h"
//交换两个数的位置
void swap(int *a,int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
//递归实现全排列
void sort(int *list,int k,int n)//list[k..n]的全排列
{
if( k == n )//输出一个排列
{
for( int i=0; i<= n;i++)
printf("%d ",list[i]);
printf("\n");
}
else
{
for( int i=k; i<=n; i++ )
{
swap(&list[k],&list[i]);//交换两个元素
sort(list,k+1,n);
swap(&list[k],&list[i]);
}
}
}
void main()
{
int list[] = {1,2,3,4};
sort(list,0,3);
}