字符串的“无重复”全排列递归算法

来源:互联网 发布:人工智能开发语言最好 编辑:程序博客网 时间:2024/06/04 21:16
#include <stdio.h>int n = 0;void swap(char *a, char *b) {    char m;    m = *a;    *a = *b;    *b = m;}void perm(char list[], int k, int m) {    int i;    if (k == m)     {            printf("%s\n", list);        n++;    }     else     {        for (i = k; i <= m; i++)         {                            swap(&list[k], &list[i]);                perm(list, k + 1, m);                swap(&list[k], &list[i]);                     }    }}int main() {    int number;    char list[]="abc";        number=strlen(list);    perm(list, 0, number - 1);    printf("\n\tthere are total %d resultants\n", n);        system("pause");    return 0;}