#include<stdio.h>
void swap(int *a,int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void perm(int *a,int k,int n)
{
if(k==1)
{
for(int i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
else{
for(int i=n-k;i<n;i++)
{
swap(&a[i],&a[n-k]);
perm(a,k-1,n);
swap(&a[i],&a[n-k]);
}
}
}
int main()
{
int a[4]={1,2,3,4};
perm(a,4,4);
getchar();
}
全排列递归算法
排列算法实现
最新推荐文章于 2024-10-02 23:41:02 发布
本文介绍了一个使用C语言实现的排列算法,通过递归调用完成数组元素的所有可能排列,并详细展示了如何通过交换数组中的元素来生成不同的排列组合。
1249

被折叠的 条评论
为什么被折叠?



