全排列问题DFS实现执行示意图
【全排列问题DFS实现执行示意图】【示意图依托的核心代码】#include bits/stdc.h using namespace std; const int maxn12; int a[maxn],st[maxn]; int n; //确定第pos位及后续位置的值 void dfs(int pos) { if(posn1) { for(int i1; in; i) { printf(%5d,a[i]); } printf(\n); return; } //枚举所有数字尝试为当前位置pos选择一个可用值 for(int i1; in; i) { if(st[i]0) { a[pos]i; st[i]1; dfs(pos1); st[i]0; //撒销选择 } } } int main() { scanf(%d,n); dfs(1); return 0; } /* in: 3 out: 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 */【参考文献】https://blog.csdn.net/hnjzsyjyj/article/details/148295326
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2566576.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!