深度优先遍历
求n个数的所有排列组合。
#include "stdafx.h" #include <stdio.h> int a[10], book[10], n; void dfs(int step) { int i; if(step == n+1) { for (i = 0; i<=n; i++) { printf("%d", a[i]); } printf("\n"); return; } for (i=1; i<=n; i++) { if (book[i] == 0) { a[step] = i; book[i] = 1; dfs(step+1); book[i] = 0; } } return; } int _tmain(int argc, _TCHAR* argv[]) { scanf("%d", &n); dfs(1); system("pause"); return 0; }
作者:cjingzm
出处:http://www.cnblogs.com/cjingzm/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。