DFS: 스테이크 공간: O(n)은 가장 짧은 공간을 갖지 않습니다.
BFS: 대기열 공간: O(2^n)은 최단 경로를 찾을 수 있습니다.
DFS 예제 및 코드 템플릿
주제 설명
정수 n이 주어졌을 때 1~n까지의 숫자를 일렬로 배열하면 여러 가지 방법이 있을 것이다.
이제 모든 순열 방법을 사전순으로 출력하십시오.
입력 형식
정수 n을 포함하여 총 한 줄출력 형식
모든 순열 체계를 사전순으로 출력합니다. 각 체계는 한 줄을 차지합니다.데이터 범위
1≤n≤7
입력 샘플3
출력 샘플
1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1
#include<iostream>
using namespace std;
const int N = 10;
int n;
int path[N];
bool st[N];
void dfs(int u){
if(u==n){
for(int i=0;i<n;i++)
printf("%d ",path[i]);
puts("");//输出换行
return;
}
for(int i=1;i<=n;i++){
if(!st[i]){
path[u]=i;
st[i]=true;//标记某个数字已经使用
dfs(u+1);
st[i]=false;//还原某个数字的标记
}
}
}
int main(){
cin>>n;
dfs(0);
return 0;
}