- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构第5单元图.ppt
Dijkstra算法程序实现(续1) // 用Dijkstra算法求有向图g的顶点vex到其余顶点的最短路径,返回 TableEntry类型数组 template class VertexType TableEntry* ShortestPath_DIJ(ALGraphVertexType g, VertexType vex) { int i, v, w; int start=g.LocateVertex(vex); EdgeNode* edge; TableEntry* table=new TableEntry[g.GetNumVertices()]; //init table for(i=0; ig.GetNumVertices(); i++){ table[i].known=false; table[i].dist=INT_MAX; table[i].preVertex=-1; } table[start].dist=0; Dijkstra算法程序实现(续2) while(true){ v=SmallestUnknownDistIndex(table, g.GetNumVertices()); if(v==-1) break; table[v].known=true; for(w=g.GetFirstAdjVex(v); w!=-1; w=g.GetNextAdjVex(v,w)){ if(!table[w].known){ g.GetEdge(v, w, edge); if(table[v].dist+edge-weighttable[w].dist){ table[w].dist=table[v].dist+edge-weight; table[w].preVertex=v; } } } } return table; } 5.6.2每对顶点间的最短路径 对于n个顶点的图,求每一对顶点间的最短路径,方法有二: 按Dijkstra算法,求每个顶点到其他各顶点间的最短路径,每次以一个顶点为源点,重复执行Dijkstra算法。总时间复杂度是O(n3); 弗洛伊德(Floyd)提出来的,时间复杂度也是O(n3),但形式上简单。 弗洛伊德算法 基本思想:从 vi 到 vj 的所有可能存在的路径中,选出一条长度最短的路径。 若vi,vj存在,则存在路径{vi,vj} // 路径中不含其它顶点 若vi,v1,v1,vj存在,则存在路径{vi,v1,vj} // 路径中所含顶点序号不大于1 若{vi,…,v2}, {v2,…,vj}存在,则存在一条路径{vi, …, v2, …vj} // 路径中所含顶点序号不大于2 … 依次类推,则 vi 至 vj 的最短路径应是上述这些路径中,路径长度最小者。 弗洛伊德算法 假设Ak(i, j)表示顶点i到j的中间顶点序号不大于k的最短路径长度(k=1,2,?,n),那么对它做n次迭代,第n次迭代后,An(i, j)即为i到j的最短路径值,因为它中间的顶点不受限制,即允许为1~n。算法递推的产生个矩阵序列(逻辑上):A1, A2,?, An 其始基是A0=g(即图的邻接矩阵)。 设图顶点是从1起编的连续自然数,每条弧i, j都有一个非负的权值cost(i, j),弧i, j不存在时,cost(i, j)=∞;对任意不同的顶点i和j,定义Ak(i, j)为顶点i到j的中间顶点序号不大于k的最短路径长度,那么 A0(i, j)= cost(i, j) Ak(i, j)=Min{ Ak-1(i, j), Ak-1(i, k)+ Ak-1(k, j)} (k≥1) 本章小结 1. 熟悉图的各种存储结构及其构造算法,了解实际问题的求解效率与采用何种存储结构和算法有密切联系。 2. 熟练掌握图的两种有哪些信誉好的足球投注网站路径的遍历:遍历的逻辑定义、深度优先有哪些信誉好的足球投注网站和广度优先有哪些信誉好的足球投注网站的算法。 在学习中应注意图的遍历算法与树的遍历算法之间的类似和差异。 3. 应用图的遍历算法求解各种简单路径问题。 4. 理解教科书中讨论的各种图的算法。 Thank You!
您可能关注的文档
最近下载
- 专题03 阅读填空20篇(中考真题+各区名校模拟)2023年广州中考英语冲刺专项训练(解析版).docx VIP
- 产品结构设计课作业.doc VIP
- 临床药物治疗学模拟考试题+答案.docx VIP
- 临床药物治疗学考试题与答案.docx VIP
- 霸碗 盖码饭 智能炒菜机器人 品牌手册(2023Q4版).pdf
- 临床药物治疗学考试题+答案.docx VIP
- 人教版小学三年级体育教案全集全册.doc VIP
- 2011-2016年淮北师范大学《分析化学》考研真题汇总.pdf VIP
- 2011-2016年淮北师范大学《无机化学》考研真题汇总.pdf VIP
- 《小型悬臂起重机结构设计计算》18000字.docx
文档评论(0)