- 1、本文档共155页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法设计以及分析第五章1 图的搜索算法.ppt
第五章 图的搜索算法 ;上一页· 下一页· 返回首页;1.显式图与隐式图 ;2.显式图的常用术语 ;图 ;顶点的度数 (degree):从该顶点引出的边的条数,即与该顶点相关联的边的数目,简称度。
入度( indegree):有向图中把以顶点 v为终点的边的条数称为是顶点 v的入度。
出度( outdegree):有向图中把以顶点 v为起点的边的条数称为是顶点 v的出度。
终端顶点:有向图中把出度为 0的顶点称为终端顶点,如图 5-1中 ⑵图的 v 3。
路径与路长:在图 G=( V, E)中,如果存在由不同的边 (v i0, v i1 ), (v i1, v i2 ), …, (v in-1, v in )或是 v i0, v i1 , vi 1, v i 2, …, v in-1, v in )组成的序列,则称顶点 v i0, v in是连通的,顶点序列( v i0, v i1, v i2, …, v in)是从顶点 v i0到顶点 v in的一条道路。路长是道路上边的数目, v i0到 v in的这条道路上的路长为 n。
连通图:对于图中任意两个顶点 v i、 v j ∈V, v i、 v j之间有道路相连,则称该图为连通图。如 5-1中的 ⑴图。
网络:带权的连通图,如图 5-2所示。;3.隐式图术语 1)子集树 ;图5-3 n=3的子集树 ;;4.图的存储 1)邻接矩阵法 ; 上一页· 下一页· 返回首页·;2)邻接表 ;图7.1 ; 5.1.2 图搜索及其术语;2.相关概念和术语 ;活结点:如果已生成一个结点而它的所有儿子结点还没有全部生成,则这个结点叫做活结点。
E-结点:当前正在生成其儿子结点的活结点叫E-结点(正
扩展的结点)。
死结点 :不再进一步扩展或者其儿子结点已全部生成的生成结点就是死结点 。;5.2.1 算法框架 ;2.算法框架 ;1)邻接表表示图的广度优先搜索算法 ;2)邻接矩阵表示的图的广度优先搜索算法;5.2.2 广度优先搜索的应用 ;【例1】已知若干个城市的地图,求从一个城市到另一个城市的路径,要求路径中经过的城市最少。 算法设计: ; 如图5-6表示的是从城市A到城市H的交通图。从图中可以看出,从城市A到城市H要经过若干个城市。现要找出一条经过城市最少一条路线。 ;具体过程如下: ;数据结构设计: ;算法如下:;算法分析:时间复杂度是O(n);空间复杂性为(n2),包括图本身的存储空???和搜索时辅助空间“队”的存储空间。;【例2】走迷宫问题 ;算法设计: ;数据结构设计: ;int jz[8][8]= {{1,0,0,0,1,0,1,1},{0,1,1,1,1,0,1,1}, {0,1,1,0,0,1,1,1}, {0,1,0,1,1,1,0,1}, {1,1,0,1,1,1,0,0},{0,0,1,1,1,1,1,0}, {1,1,1,0,0,1,1,0}, {1,1,1,1,0,0,0,1}};struct {int city, pre;} sq[100];int qh,qe,i,visited[100];main( )
{int i,n=8;
for(i=1;i=n,i=i+1) visited[i]=0;
search( );
}
;search( ){qh=0; qe=1;sq[1].city=1; sq[1].pre=0; visited[1]=1;while( qhqe) /当队不空/ {qh=qh+1; /结点出队/ for(i=1;i=n,i=i+1) /扩展结点/ if (jz[sq[qh].city][i]=1 and visited[i]=0) { qe=qe+1; /结点入队/ sq[qe].city=i; sq[qe].pre=qh; visited[qe]=1; if (sq[qe].city=8) out( ); }
}
print(“No avaliable way.”);
};out( ); /输出路径/ {print(sq[qe].city); while(sq[qe].pre0)
{ qe=sq[qe].pre; print(--,sq[qe].city);} }
算法分析:
算法的时间复杂度并不复杂是O(n),算法的空间复杂性为O(n2)
您可能关注的文档
- 第四章节 海水中的二氧化碳-.ppt
- 第四章节 烹饪原料的品质检验和保藏原理.ppt
- 第四章节 特殊条件下的驾驶.ppt
- 第四章节 电子商务中的信息流.ppt
- 第四章节 电子签名的法律体系.ppt
- 第四章节 社区工作的理论基础.ppt
- 第四章节 纳米微粒的制备方法.ppt
- 第四章节 纺织材料的吸湿性.ppt
- 第四章节 蛋白质的共价结构.ppt
- 第四章节 资金筹集的核算.ppt
- 行政执法有关概念.pptx
- 绿色插画风声声问候温馨你我.pptx
- 绿色环保风光伏发电项目简介.pptx
- 第3课《中国近代至当代政治制度的演变》一轮复习课件.pptx
- 统编版七年级历史下学期第21课《明清时期的科技与文化》课件.pptx
- 统编版语文七年级下册第22课《太空一日》课件.pptx
- DeepSeek培训课件-DeepSeek与AI幻觉研究报告-清华大学DeepSeek培训课件-从DeepSeek探讨大语言模型在建筑及能源行业的应用趋势和技术方法.pdf
- DeepSeek技术颠覆-创新共赢.pdf
- DeepSeek大模型概念、技术与应用实践(读懂大模型)(1).pdf
- DeepSeek的崛起-AI大模型创业格局报告DeepSeek军用场景智能化应用2025年DeepSeek培训课件DeepSeek与AIGC应用分享.pdf
文档评论(0)