递归生成n个元素的所有排列方式

通常我们希望检查n个不同元素的所有排列方式以确定一个最佳的排列。比如,a,b,c的排列方式有: abc, acb, bac, bca, cab和cba. N个元素的排列方式共有n!种。

//生成list[k:m]的所有排列方式
void Perm(char list[], int k, int m)
{
 int i;
 if(k==m)
 {
  for(i=0;i<=m;i++)
  {
   printf("%c", list[i]);
   printf("/n");
  }
 }
 else
 {
  for(i=k;i<=m;i++)
  {
   swap(list+k, list+i);
   Perm(list, k+1, m);
   swap(list+k, list+i);
  }
 }
}

Ref:<<数据结构,算法与应用>> P7~P8

阅读更多
个人分类: 数据结构与算法
上一篇Blog之第一次
下一篇多项式求值
想对作者说点什么? 我来说一句

java递归实现N个数全排列输出

2007年11月20日 2KB 下载

没有更多推荐了,返回首页

关闭
关闭