C语言全排列回溯算法怎么用

C语言全排列回溯算法怎么用

这篇文章主要介绍“C语言全排列回溯算法怎么用”,在日常操作中,相信很多人在C语言全排列回溯算法怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言全排列回溯算法怎么用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

算法思想

比如3拿来举例,按照一般正常的话就是应该,

123 132 213 231 312 321

六种,先造出一个hashtable数组让其存储在各位是否使用,然后创建path的p数组将数字进行选填,递归树我花在文章下面。

完整代码

#include<cstdio>constintmaxn=11;//P为当前排列HashTable记录整个数x是否已经在P中intn,P[maxn],hashTable[maxn]={false};//当前处理排列的第index位置voidgenerateP(intindex){if(index==n+1){for(inti=1;i<=n;i++){printf("%d",P[i]);}printf("\n");return;}for(intx=1;x<=n;x++){if(hashTable[x]==false){P[index]=x;hashTable[x]=true;generateP(index+1);hashTable[x]=false;}}}intmain(){n=3;generateP(1);return0;}

实验效果

到此,关于“C语言全排列回溯算法怎么用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注恰卡编程网网站,小编会继续努力为大家带来更多实用的文章!

发布于 2022-01-14 22:33:36
收藏
分享
海报
0 条评论
37
上一篇:怎么深入了解vue中的v-model 下一篇:mybatis中like模糊查询特殊字符报错怎么实现转义处理
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码