使用递归回溯算法实现1-9数字的全排列,属于最简单的状态转移BFS之一,很多题目首先需要实现这一个基础功能
#include <iostream>
using namespace std;
int vis[15]={0};
int cunchu[10];
void bfs(int start)
{
if(start==10)
{
for(int j=1;j<10;j++)
{
printf("%d\t",cunchu[j]);
}
printf("\n");
return ;
}
for(int i=1;i<10;i++)
{
if(vis[i]==1)
{
continue;
}
vis[i] = 1;
cunchu[start] = i;
bfs(start+1);
vis[i] = 0;//实现回溯算法
}
}
int main(void)
{
bfs(1);
}