您的位置:首页 > 其它

递归实现全排列

2013-11-19 00:17 239 查看
问题: 利用递归实现 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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: