【算法】深度優先搜索
阿新 • • 發佈:2019-03-13
bool 排列問題 == for true pre data str clu
深度優先搜索(DFS)是一種極其經典的算法,最好的理解例子是全排列問題。
現有數字 1~5,對他們進行全排列,共有幾種排法?
#include<stdio.h> int data[5]={1,2,3,4,5}; int perm[5]={0}; bool book[5]={false}; void dfs(int step) { int i; if(step==5) { for(i=0;i<5;i++) { printf("%d ",perm[i]); } printf("\n"); return; } for(i=0;i<5;i++) { if(!book[i]) { book[i]=true; perm[step]=data[i]; dfs(step+1); book[i]=false; } } return; } int main() { dfs(0); return 0; }
【算法】深度優先搜索