[算法课][全排列]图示123全排列,不能再清楚了 原创
算法标签:全排列
图示

思路
通过二叉树的先序遍历走并且回溯
重要的是弄清走法与怎么样交换达到全排列不重不漏的目的
AC代码
#include<iostream>
using namespace std;
void dfs(int a[],int n,int i)
{
if(i==n){for(int i =0;i<n;i++)cout<<a[i];cout<<endl;return ;}
//如果是123全排列的话。
//第一层是a[0]到a[0]到a[2]交换
//第一层是a[1]到a[1]到a[2]交换
for(int j=i;j<n;j++)
{
swap(a[i],a[j]);
dfs(a,n,i+1);
swap(a[i],a[j]);
}
}

浙公网安备 33010602011771号