字符串-字符串的全排列-递归实现

来源:互联网 发布:plc编程标准 编辑:程序博客网 时间:2024/05/16 08:53
/*全排列问题 加入输入abc,输出他的全排列abc acb bac bca cab cba方法一  递归实现思路  每一层递归固定一位*/#include <stdio.h>#include <stdlib.h>#include <string.h>int flag=0;/*交换*/void swap(char *a,char *b){    char tmp=*a;*a=*b;*b=tmp;}/*每一层递归固定一位*/void CalcAllPermutation(char *str,int from,int to){    if(to == 1)    {        printf("%s\n",str);return;    }    if(from == to)    {        flag++;        printf("%s  %d\n",str,flag);    }    int i;for(i=from;i<to;i++){    swap(&str[from],&str[i]);CalcAllPermutation(str,from+1,to);swap(&str[from],&str[i]);}}int main(){    char str[]="abd";int from=0;int to=from+strlen(str);CalcAllPermutation(str,from,to);}/*./a.outabd  1adb  2bad  3bda  4dba  5dab  6*/

0 0
原创粉丝点击