C++使用递归的方法生成全排列(《数据结构与算法》,学习笔记)

#include 
using namespace std;
template<class T>

void swip(T& a,T& b)//交换两个元素的值
{
    T temp=a;
    a=b;
    b=temp;
}
template<class T>
void pailie(T list[],int k,int n)
{ 
    int i;
    if(k==n)//当排列到最后一个元素时,打印本次的排列结果
    {
        for(i=0;icout<<list[i]<<" ";
        cout<else for(i=k;i//通过交换位置,生成一次新的排列结果
    {
        swip(list[k],list[i]);
        pailie(list,k+1,n);
        swip(list[i],list[k]);
    }
}

int main()//main函数
{
    char list[]="abcd";
    pailie(list,0,4);
    system("Pause");
    return 0;
}

C++使用递归的方法生成全排列(《数据结构与算法》,学习笔记)_第1张图片
“`调试结果

你可能感兴趣的:(c++-学习笔记)