python dijkstra 最短路算法示意代码
2023-09-14 09:11:51 时间
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']) """
相关文章
- Python 图_系列之纵横对比 Bellman-Ford 和 Dijkstra 最短路径算法
- Python ---- 算法入门(2)分治算法解决【找数组的最大值和最小值】问题
- python基础系列教程——Python的安装与测试:python解释器、PyDev编辑器、pycharm编译器
- Python操作Excel文件(2)
- 【说站】python聚类算法如何选择
- opencv使用教程_opencv安装教程python
- Python:利用python代码编程实现将视频的avi格式转换为MP4格式
- python上的表白代码_用Python实现表白代码
- python判断文件后缀_Python 判断文件后缀是否被篡改
- Python冒泡排序算法及其优化「建议收藏」
- python win32api sendmessage_Python win32api.SendMessage方法代码示例[通俗易懂]
- python设置时间过期改变状态_Python Redis设置过期时间「建议收藏」
- 数据结构与算法Python_数据结构与算法python语言实现
- python-louvain_louvin算法
- python定义函数求和_Python定义函数实现累计求和操作
- 搭建python开发环境-c++教程 如何搭建Python开发环境?
- 一览机器学习算法(附python和R代码)
- 改进的自适应中值滤波算法 去除椒盐噪声 python 代码实现
- Python面向对象编程-自定义异常
- Python 迁移学习实用指南:1~5
- Linux创建Python文件的步骤(linux新建python文件)
- 掌握Linux环境下的Python编程(linux执行python)
- Python与MongoDB 无缝连接(python连接mongodb)
- 在Python中简单调用MySQL(python调用mysql)
- python用Redis与Python实现大数据收集与分析(redis 联合)
- python选择排序算法的实现代码
- python冒泡排序算法的实现代码