写一个函数输出一个字符串中的所有排列

     我们以三个字符abc为例来分析一下求字符串排列的过程。首先我们固定第一个字符a,求后面两个字符bc的排列。当两个字符bc的排列求好之后,我们把第一个字符a和后面的b交换,得到bac,接着我们固定第一个字符b,求后面两个字符ac的排列。现在是把c放到第一位置的时候了。记住前面我们已经把原先的第一个字符a和后面的b做了交换,为了保证这次c仍然是和原先处在第一位置的a交换,我们在拿c和第一个字符交换之前,先要把ba交换回来。在交换ba之后,再拿c和处在第一位置的a进行交换,得到cba。我们再次固定第一个字符c,求后面两个字符ba的排列。

#include

 bool repeatnumber(char *bg,char *pch)
{
    bool f=false;
    for(char *q=bg;q!=pch;q++)
        if(*q==*pch)
        {
            f=true;
            break;
        }
    return f;
}

 void pailie(char *ch,char *bg)
{    

    if(*bg=='\0')
        cout<



写一个函数输出一个字符串中的所有排列_第1张图片

你可能感兴趣的:(算法设计)