之前被教过一个next_permutation库函数,是用来实现数的全排列的,具体实现见代码

#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
int main(){int a[1000];int n;while(scanf("%d",&n)!=EOF){for(int i=0;i<n;i++)a[i]=i+1;do{for(int i=0;i<n;i++)cout<<a[i]<<" ";cout<<endl;}while(next_permutation(a,a[n-1]));}return 0;
}

  然后自己用深搜写了一遍,之前没搞懂递归结束的条件,和什么时候该输出一个排列,后来相通只要循环到数组的最后一个就输出一个全排列,递归结束。具体见代码

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<queue>
using namespace std;
int a[10000],vis[10000];
int k,n;
void dfs(){if(k==n){for(int j=0;j<n-1;j++)cout<<a[j]<<" ";cout<<a[n-1]<<endl;return;}//递归的结束以及输出一个排列for(int i=1;i<=n;i++){if(!vis[i]){vis[i]=1;a[k++]=i;dfs();k--;vis[i]=0;}}
}
int main(){while(scanf("%d",&n)!=EOF){memset(vis,0,sizeof(vis));k=0;dfs();}return 0;
}

  

转载于:https://www.cnblogs.com/wsyxy/p/4278178.html

深搜--1-n的全排列相关推荐

  1. 104.全排列(深搜)搜索与回溯

    1294 全排列 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 给出一个n, 请输出n的所有全排列 输入描述  ...

  2. DSF深搜入门全排列笔记nyoj366

    DFS深搜之全排列(初学) 题目描述 思路解析与dfs模板伪代码 题目描述 以nyoj2.0 366题为例,记录入门dfs的代码,并理清思路,方便以后复习巩固,初学dfs如果有问题还请指出~ 链接: ...

  3. hdu4876 深搜+(随机枚举剪枝)

    题意:       给你n个数,让你从选择k个数,然后排成一个环(k个数的顺序随意,但是排成一个环后就不能变了),然后可以在这个环上任意的找连续w个数(w<=k),可以找多次,得到一个值等于当前 ...

  4. 深搜、广搜、搜索剪枝

    搜索与回溯讲解 文章目录 深搜 方向向量: DFS代码: 题目讲解: 八皇后问题 字符序列 自然数的拆分 广搜 BFS代码: 题目讲解: 瓷砖 关系网络 bfs与dfs的用途与区别 搜索剪枝 可行性剪 ...

  5. 深入递归、深搜dfs、回溯、剪纸学习。

    深入递归,深搜dfs,回溯,剪枝 参考于博客 一.双管齐下解递归 "逐步生成结果"类问题之数值型 自下而上的递归(递推,数学归纳,动态规划) 解决简单情况下的问题. 推广到稍复杂情 ...

  6. 深搜(DFS)和宽搜(BFS)

    相同点: 深搜和宽搜都可以对空间进行遍历,搜索的结构都是树 不同点: 深搜(DFS):(暴搜)(直男)(执着的人) (1)尽可能往深了搜,当搜到叶节点(简称搜到头)就会回溯,然后再搜下一个,然后再回溯 ...

  7. 深搜+回溯+广搜小结

    深搜 按照一定的顺序和规则,一直往深处走,直到走不通再返回,换一种路径重复上述步骤. 深搜一般可以找到问题的所有答案,但问题规模较大时,解集树的深度就会比较大并且比较宽,时间复杂度就会较高.与广搜相比 ...

  8. Go 分布式学习利器(15) -- Go 实现 深搜和广搜

    强化语法,回顾算法. 通过Go语言实现 深度优先搜索 和 广度优先搜索,来查找社交网络中的三度好友关系(三度指的是一个节点到 其相邻节点 到 其相邻节点的节点 ,图递增三层好友关系). 涉及到的Go语 ...

  9. 水管工游戏 (深搜)

    水管工游戏 本题依然是采用搜索,深搜,广搜都可以,本代码采用深搜,此题在搜索时需要增加一些判断条件以及下一步要搜索的位置即可. 代码如下: #include<stdio.h> int a[ ...

最新文章

  1. Java基础学习总结(6)——面向对象
  2. Win10安装Latex
  3. ACM入门之【图论习题】
  4. 在ie6下实现position-fixed的效果--------续集---对联效果(02)
  5. 云计算示范项目_瑞松科技基于工业互联网的设备运维及工艺管理云平台成功入选2020年工业互联网试点示范项目...
  6. Mysql8报You need either to explicitly disable SSL by setting useSSL=false
  7. leetcode 703. 数据流中的第K大元素(Kth Largest Element in a Stream)
  8. 基于Java毕业设计幼儿园后勤管理系统源码+系统+mysql+lw文档+部署软件
  9. WebSSH2 界面ssh
  10. android开发教程!看懂这些帮你轻松解决就业问题!知乎上转疯了!
  11. TCP状态转换图文解说
  12. 瑞芯微 | 摄像头ov13850移植笔记
  13. IDEA快捷键大全(详细)
  14. ProcDump+Mimikatz绕过杀毒软件抓密码
  15. 关于装有WIN7系统的硬盘转移到USB3.0移动硬盘盒后开机启动蓝屏(代码7B)的解决方案
  16. “神童”Tom Ding:区块链是下一代云计算和互联网的基础
  17. 全国程序员薪酬大曝光!看完我酸了,33% 程序员月薪达到这个标准
  18. 【ASP.NET Identity系列教程(三)】Identity高级技术
  19. 外卖点餐自取连锁多店小程序开发
  20. branch什么意思中文翻译_日本街头被“玩坏”的中文翻译,你能忍到第几条?

热门文章

  1. 3.2 神经网络表示
  2. freecplus框架-文件操作
  3. java多对多的存储_Swift CoreData,通过多对多关系保存数据
  4. python语言能做什么游戏好玩_太好玩了我用 Python 制作一款小游戏
  5. Redis学习总结(5)——阿里云Redis开发规范
  6. 复制文件夹时同时拷贝其权限
  7. android 玩pc游戏,Shield掌机试玩: Android系统 可玩PC单机游戏
  8. ToolTip C#
  9. 国外排行前十的Python开源项目,短时间打造无数超级“黑客”!
  10. Nginx初探索之安装、启动、关闭和重启