2022.3.30学习日记
迪杰斯特拉算法:
连接图是二维邻接矩阵
通过Dijkstra计算图G中的最短路径时,需要指定起点vs(即从顶点vs开始计算)。
此外,引进两个集合S和U。S的作用是记录已求出最短路径的顶点,而U则是记录还未求出最短路径的顶点(以及该顶点到起点vs的距离)。
初始时,S中只有起点vs;U中是除vs之外的顶点,并且U中顶点的路径是"起点vs到该顶点的路径"。然后,从U中找出路径最短的顶点,并将其加入到S中;接着,更新U中的顶点和顶点对应的路径。 然后,再从U中找出路径最短的顶点,并将其加入到S中;接着,更新U中的顶点和顶点对应的路径。 … 重复该操作,直到遍历完所有顶点。
思路整理:
将地图整理成二维连接矩阵的形式,但把每个站点都当成一个矩阵行列,数据的大小十分庞大,这不是我一个人能应付过来的
所以我将图例简化——我发现图有很多个交叉点,交叉点的出现,导致如果路线出现变更,需要从交叉点换车,并且换乘的次数不固定,要想取得最快的路线,有两种情况:需要换乘和不需要换乘
不需要换乘很简单,从出发点遍历路线站表就可以获得路线
需要换乘的情况就相对复杂了,不仅需要从出发线离开,还需要找到终点站在哪条线中
我将图中交叉点留下,省略其他点,将交叉点之间的站间数作为权值,构造一个简单的无向图。出发点(或终点)如果是交叉点就直接借用交叉图来计算和记录;如果出发点(或终点)不在交叉点就将其向两头延申到交叉点再进行以上计算和记录。
思路清晰,开始构建
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!