python dijkstra 最短路算法示意代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | def dijkstra(graph, from_node, to_node): q, seen = [( 0 , from_node, [])], set () while q: cost, node, path = heappop(q) seen.add(node) path = path + [node] if node = = to_node: return cost,path for adj_node, c in graph.get(node, {}).items(): if adj_node not in seen: heappush(q, (cost + c, adj_node, path)) return - 1 ,[] air_lines = { "1" :{ "2" : 2000 , "3" : 2000 , "4" : 4000 , "5" : 4500 }, "2" :{ "5" : 1000 }, "3" :{ "4" : 1000 }, "4" :{ "5" : 500 }} print (dijkstra(air_lines, "1" , "4" )) print (dijkstra(air_lines, "1" , "5" )) print (dijkstra(air_lines, "4" , "5" )) print (dijkstra(air_lines, "5" , "4" )) print (dijkstra(air_lines, "1" , "1" )) print (dijkstra(air_lines, "10" , "10" )) """ (3000, ['1', '3', '4']) (3000, ['1', '2', '5']) (500, ['4', '5']) (-1, []) (0, ['1']) (0, ['10']) """ |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2017-09-20 HBase单机环境搭建
2017-09-20 WAF——针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入、XSS跨站、Webshell上传、命令注入、非法HTTP协议请求、非授权文件访问等
2017-09-20 常见的DNS攻击——偷(劫持)、骗(缓存投毒)、打(DDos)
2017-09-20 DDos游戏行业受攻击最多
2017-09-20 木马——本质就是cs socket远程控制,反弹木马是作为c端向外发起网络请求