求注释一下全排列递归!

#include<stdio.h>
//交换值
inline void swap(char &a,char &b)
{
    char temp=a;
    a=b;
    b=temp;
}
//算法核心:k代表数组起点,m代表数组终点
void perm(char list[],int k,int m)
{
    int i;
    if(k==m)
    {
        for(i=0;i<=m;i++)
        {
            putchar(list[i]);
        }
        putchar('\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 argc,char **argv)
{
    char s[]="124";
    perm(s,0,2);
    return 0;
}

你可能感兴趣的:(全排列递归算法)