python -- Dijkstra算法
来源:互联网 发布:怎么进入淘宝客买东西 编辑:程序博客网 时间:2024/05/16 14:14
#! /usr/bin/env python3# -*- coding: utf-8 -*-graph = {}graph["起点"] = {}graph["起点"]["武汉"] = 5graph["起点"]["岳阳"] = 2graph["武汉"] = {}graph["武汉"]["长沙"] = 4graph["武汉"]["广州"] = 2graph["岳阳"] = {}graph["岳阳"]["武汉"] = 8graph["岳阳"]["广州"] = 7graph["长沙"] = {}graph["长沙"]["深圳"] = 3graph["长沙"]["广州"] = 6graph["广州"] = {}graph["广州"]["深圳"] = 1graph["深圳"] = {}infinity = float("inf")costs = {}costs["起点"] = 0costs["武汉"] = infinitycosts["岳阳"] = infinitycosts["广州"] = infinitycosts["长沙"] = infinitycosts["深圳"] = infinityparents = {}parents["武汉"] = "起点"parents["岳阳"] = "起点"parents["深圳"] = Noneprocessed = []path = []def find_lowest_cost_node(tb_costs):lowest = infinitylowest_node = Nonefor node in tb_costs:cc = costs[node]if cc < lowest and node not in processed:lowest = cclowest_node = nodereturn lowest_nodedef dijkstra():node = find_lowest_cost_node(costs)while node is not None:path.append(node)cost = costs[node]neighbors = graph[node]for i in neighbors.keys():new_cost = cost + neighbors[i]if new_cost < costs[i]:costs[i] = new_costparents[i] = nodeelif node in path:path.remove(node)processed.append(node)node = find_lowest_cost_node(costs)if __name__ == "__main__":dijkstra()print(costs["深圳"])print(costs)print(path)
阅读全文
0 0
- Python Dijkstra算法
- python编写dijkstra算法
- python实现Dijkstra算法
- python -- Dijkstra算法
- python最短路径算法,基于dijkstra
- 算法:Python实现dijkstra最短路由
- 【Python排序搜索基本算法】之Dijkstra算法
- 【算法——Python实现】有权图求单源最短路径Dijkstra算法
- 【Python排序搜索基本算法】之Dijkstra最短路径算法(Dijkstra's Shortest-Path Algorithm)
- python dijkstra
- Dijkstra算法
- dijkstra算法
- Dijkstra算法
- Dijkstra算法
- Dijkstra算法
- Dijkstra算法
- Dijkstra 算法
- Dijkstra算法
- 【传智播客郑州分享】本科生在传智播客郑州校区开启人生新篇章
- mysql 5.6 order by limit 排序分页数据重复问题
- appium-TouchAction
- Bootstrap Paginator 分页插件
- halcon例程学习笔记(10)---图像灰度共生矩阵cooc_feature_image.hdev
- python -- Dijkstra算法
- MVC项目发布问题
- 想让用户忍不住浏览下去的5种设计策略
- 安装 Docker Compose
- JDK1.8新特性简单介绍
- tomcat启动时Unable to process Jar entry
- 基于主主复制的mysql读写分离配置
- VPU?APU?GPU?折腾从AMD-GPU回到Intel核显
- java基础(6)- 面向对象(3)