当前位置: 首页 > news >正文

上海浦东建筑建设网站污水处理工程wordpress直播购物插件

上海浦东建筑建设网站污水处理工程,wordpress直播购物插件,厦门市建设与管理局网站,阳江房产网官网算法之深度优先算法 深度优先算法(DFS) 概念: 深度优先算法(DFS)跟BFS算法一样是用于遍历图的算法,但是DFS并不像BFS算法一样,它搜索出来的路径不具有最短性,并且dfs算法类似于枚举,因此DFS算法一般用于求出问题的所…

算法之深度优先算法

深度优先算法(DFS)

概念

  • 深度优先算法(DFS)跟BFS算法一样是用于遍历图的算法,但是DFS并不像BFS算法一样,它搜索出来的路径不具有最短性,并且dfs算法类似于枚举,因此DFS算法一般用于求出问题的所有路径(例如全排列)

  • 深度优先算法就是从起点出发,选择与其邻接的一条路径进行搜索将该路径搜索完(没有路了或者是个回路),再进行回退重新选择其他路径搜索。这样就需要使用递归实现,而判断是否访问过顶点就需要一个bool类型的数组vis进行记录

  • 对于非强连通图,那么可能在某个节点开始的深度优先搜索可能访问不了所有的节点,在这种情况,我们选取某个未被访问的节点开始,再执行深度优先搜索。

  • dfs中最重要的算法思想是回溯和剪枝,dfs+回溯+剪枝也可以用于求解最短路径,但是BFS的时间复杂度更低。

    1. 回溯是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。
    2. 剪枝,就是减小搜索树规模、尽早排除搜索树中不必要的分支的一种手段。形象地看,就好像剪掉了搜索树的枝条,故称之为“剪枝”

具体操作

  • 访问图中某一起始点v后,由v出发访问它的任一邻接点w1;
  • 再从w1出发访问与w1邻接但还未被访问过的顶点w2
  • 然后再从w2出发,进行类似的访问
  • 如此进行下去,直至到达所有的邻接顶点都被访问过的顶点u为止
  • 接着,退回一步,退到前一次刚访问过的顶点,看是否还有其他没有被访问的邻接顶点。
  • 如果有,则访问此顶点,之后再从此顶点出发,进行与前述类似的访问;
  • 如果没有,就再退回一步进行搜索。重复上述过程,直到连通图中所有顶点都被访问过为止。

实现代码

邻接矩阵表示图的算法实现

bool vis[g.vexnum];   //记录顶点访问信息,需要初始化为false//图g为邻接矩阵类型,v为访问顶点
void dfs(Graph g,int v){cout<<v;vis[v]=true;//依次检查邻接矩阵v所在行。for(int w=0;w<g.vexnum;w++){//w是v的邻接点,如果w未访问,则递归调用dfsif(g.arcs[v][w]!=0&&!vis[w]){dfs(g,w);}}
}

邻接表表示图的算法实现

void DFS(int v){cout<<v;an[v].flag= true;listnode* p=an[v].next;while (p!= nullptr){if(!an[p->data].flag){DFS(p->data);}p=p->next;}}

尾言

完整版笔记也就是数据结构与算法专栏完整版可到我的博客进行查看,或者在github库中自取(包含源代码)

  • 博客1: codebooks.xyz
  • 博客2:moonfordream.github.io
  • github项目地址:Data-Structure-and-Algorithms
http://www.yayakq.cn/news/753269/

相关文章:

  • 对网站建设功能的情况说明邮箱下不了wordpress
  • 网站seo平台上海网站建设褐公洲司
  • 微网站免在线做图网站
  • 让人做网站需要注意什么创业计划书模板
  • 石家庄做网站备案有哪些公司直通车关键词怎么选 选几个
  • 做单机游戏破解的网站怎么做网站能够增加人气
  • 网站建设公司网址大全广安建设企业网站
  • ps模板素材网站安徽建设相关网站
  • 宣传型网站的实现技术手段全球网站排名前100
  • 甘肃企业建站系统费用wordpress防止频繁访问
  • 青岛手机网站设计公司php企业网站
  • 档案网站建设与档案信息化永康公司网站开发
  • 手机网站一般多宽网站建设公司株洲
  • 杭州模板网站建设系统重庆自助建网站企企业
  • 义乌网站建设方式影楼微网站建设方案
  • 安徽省徽工建设集团网站诸城网站制作
  • 建设工程信息哪个网站有详细信息网站需求分析问题
  • 上海网站开发兼职12306铁路网站开发语言
  • 品牌网站建设權威大蝌蚪河南省网站建设哪家好
  • wordpress网站访问慢网站建设需求书
  • 建设工业网站付费下载网站源码
  • 想建网站西宁网站建设哪家好
  • 帮忙做简历的网站建设工程学部研究生培养网站
  • 金融 网站建设形象型网站
  • 网站项目的设计制作wordpress fpm
  • 网站后台用户名如何选择网站域名
  • 安阳网站html网站标题怎么做
  • 假冒建设厅网站亳州网站建设费用
  • 基于wordpress学校系统网站优化和提升网站排名怎么做
  • 商城网站建设哪家公司好html火锅网页制作模板