给出一个字符数组的全排列

给出一个字符数组的全排列#include <stdio.h>
给出一个字符数组的全排列
给出一个字符数组的全排列char InputString[100];
给出一个字符数组的全排列char OutputString[100];
给出一个字符数组的全排列int MarkArray[100];
给出一个字符数组的全排列int StringLength;
给出一个字符数组的全排列int Number;
给出一个字符数组的全排列
给出一个字符数组的全排列void processString(int cursor)
给出一个字符数组的全排列{
给出一个字符数组的全排列    int i=0;
给出一个字符数组的全排列    if(cursor==StringLength)
给出一个字符数组的全排列    {
给出一个字符数组的全排列        puts(OutputString);
给出一个字符数组的全排列        Number++;
给出一个字符数组的全排列        return;
给出一个字符数组的全排列    }

给出一个字符数组的全排列    while(i<StringLength)
给出一个字符数组的全排列    {
给出一个字符数组的全排列        if(MarkArray[i]==0)
给出一个字符数组的全排列        {
给出一个字符数组的全排列            MarkArray[i]=cursor+1;
给出一个字符数组的全排列            OutputString[cursor]=InputString[i];
给出一个字符数组的全排列            processString(cursor+1);
给出一个字符数组的全排列            MarkArray[i]=0;
给出一个字符数组的全排列        }

给出一个字符数组的全排列        i++;
给出一个字符数组的全排列    }

给出一个字符数组的全排列}

给出一个字符数组的全排列
给出一个字符数组的全排列int main()
给出一个字符数组的全排列{
给出一个字符数组的全排列    int i=0;
给出一个字符数组的全排列    for(i=0;i<100;i++) MarkArray[i]=0;
给出一个字符数组的全排列    
给出一个字符数组的全排列    gets(InputString);
给出一个字符数组的全排列    
给出一个字符数组的全排列    StringLength=0;
给出一个字符数组的全排列    while(InputString[StringLength]!='\0'&&StringLength<100) StringLength++;
给出一个字符数组的全排列    OutputString[StringLength]='\0';
给出一个字符数组的全排列    
给出一个字符数组的全排列    processString(0);
给出一个字符数组的全排列    
给出一个字符数组的全排列    printf("Total:%d",Number);
给出一个字符数组的全排列    return 0;
给出一个字符数组的全排列}

给出一个字符数组的全排列
说明:
递归算法,cursor表示游标,每次从输入的数组中读出一个字符,游标前进一,然后递归,当游标等于输入的数组的长度时,递归结束,输出结果。
本文转自冬冬博客园博客,原文链接:http://www.cnblogs.com/yuandong/archive/2006/08/16/478568.html,如需转载请自行联系原作者
上一篇:软件工程 Beta 阶段 团队贡献分数


下一篇:[LeetCode] Permutations 全排列