全排列算法

来源:互联网 发布:淘宝花呗店铺购买 编辑:程序博客网 时间:2024/04/28 04:54
在看数据结构C算法(第二版)机械工业出版社的书时发现里的全排列算法不对,自己实现了一下,以下在
linux/gcc 环境下测试成功。在此留作笔记
/**author:livahu
***2006.11.23
***全排列算法
*/

#include 
<stdio.h>

#define SWAP(x, y, tmp) ((tmp) = (x), (x) = (y), (y) = (tmp))


void perm(char *intint);
int main(void)
{
    
char ch[] = "ABCD";
    perm(ch, 
04);
}



void perm(char *list, int i, int n)
{
  
int j, tmp;
  
if (i == n - 1{
      printf(
"%s ", list);
  }
 else {
      
for (j = i; j < n; j++{
          SWAP(list[i], list[j], tmp);
        perm(list, i
+1, n);
        SWAP(list[i], list[j], tmp);
      }

  }

}

 
原创粉丝点击