python棋盘最短路径_Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例...

本文实例讲述了Python数据结构与算法之图的最短路径(Dijkstra算法)。分享给大家供大家参考,具体如下:

# coding:utf-8

# Dijkstra算法——通过边实现松弛

# 指定一个点到其他各顶点的路径——单源最短路径

# 初始化图参数

G = {1:{1:0, 2:1, 3:12},

2:{2:0, 3:9, 4:3},

3:{3:0, 5:5},

4:{3:4, 4:0, 5:13, 6:15},

5:{5:0, 6:4},

6:{6:0}}

# 每次找到离源点最近的一个顶点,然后以该顶点为重心进行扩展

# 最终的到源点到其余所有点的最短路径

# 一种贪婪算法

def Dijkstra(G,v0,INF=999):

""" 使用 Dijkstra 算法计算指定点 v0 到图 G 中任意点的最短路径的距离

INF 为设定的无限远距离值

此方法不能解决负权值边的图

"""

book = set()

minv = v0

# 源顶点到其余各顶点的初始路程

dis = dict((k,INF) for k in G.keys())

dis[v0] = 0

while len(book)

book.add(minv) # 确定当期顶点的距离

for w in G[minv]: # 以当前点的中心向外扩散

if dis[minv] + G[minv][w] < dis[w]: # 如果从当前点扩展到某一点的距离小与已知最短距离

dis[w] = dis[minv] + G[minv][w] # 对已知距离进行更新

new = INF # 从剩下的未确定点中选择最小距离点作为新的扩散点

for v in dis.keys():

if v in book: continue

if dis[v] < new:

new = dis[v]

minv = v

return dis

dis = Dijkstra(G,v0=1)

print("脚本之家测试结果:")

print dis.values()

运行结果:

20171212114749537.jpg?20171112114815

希望本文所述对大家Python程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435207.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式经典面试题

C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年&#xff0c;我既参加也组织了许多这种测试&#xff0c;在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息&#xff0c;此外&#xff0c;撇开面试的压力不谈&#xff0c;这种测试也是相当有趣的…

js将百度坐标转为wgs84

作者execl示例 读取并转换结果如下 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- <scrip…

Jetty 服务器架构分析(中)

接上一篇&#xff0c;说到XmlConfiguration ,XmlConfiguration 利用自己实现的 IOC 组装 Server 的全过程如下图所示&#xff1a; 这里可以看到 3 个关键的配置文件&#xff0c; jetty.xml 、 jetty-deploy.xml 、以及 contexts/xxx.xml l Jetty.xml 文件中定义了…

python去掉列表中的单引号_Python:如何从列表项中删除单引号(Python: How to remove single quotes from list item)...

I’m working on a bit of python code to run a query against a redshift (postgres) SQL database, and I’m running into an issue where I can’t strip off the surrounding single quotes from a variable I’m passing to the query. I’m trying to drop a number of…

VxWorks嵌入式操作系统的TrueFFS文件系统驱动开发

嵌入式系统对执行速度和系统可靠性的要求&#xff0c;决定了嵌入式系统需要一种安全、快速的存储设备&#xff0c;这种设备备同时还需要体积小、容量大、掉电数据不丢失等特点。而Flash存储器恰恰能够满足上述要求。这也使得Flash存储器成为嵌入式系统中的主要存储设备。 现…

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<矩阵和随机数>python)

矩阵和随机数 矩阵 创建矩阵 #创建矩阵 astring np.mat("1 2 3; 4 5 6") alist [[1,2,3],[4,5,6]] anplist np.array(alist) print(np.matrix(astring))#字符串、列表、元组、数组 print(np.mat(astring))#字符串、列表、元组、数组 print(np.mat(alist)) prin…

python爬虫抓取文本_Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例...

本文实例讲述了Python实现可获取网易页面所有文本信息的网易网络爬虫功能。分享给大家供大家参考&#xff0c;具体如下&#xff1a; #codingutf-8 #--------------------------------------- # 程序&#xff1a;网易爬虫 # 作者&#xff1a;ewang # 日期&#xff1a;2016-7-6 #…

DOC学习之TrueFFS

TrueFFS原理 引用TrueFFS原理及其在CF卡上的实现的部分内容 “1、Wear-Leveling 闪速存储器不能无限次重复使用。它的每个扇区的擦除次数虽然很大&#xff0c;但却有限&#xff1b;因此&#xff0c;随着使用次数的加长&#xff0c;它最终会变成只读状态&#xff0c;所以应该尽…

安装 sql server 2005 com+ 目录要求警告 解决方案

用法&#xff1a; 创建记事本&#xff0c;然后改后缀名为.bat echo off setlocal echo %WINDIR%\System32\msdtc.exe -uninstall %WINDIR%\System32\msdtc.exe -uninstall call :delkey "HKCR\CID" call :delkey "HKLM\SYSTEM\CurrentControlSet\Serv…

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(Matplotlib绘图基础<1>python)

数据可视化 数据分析阶段&#xff1a;理解和洞察数据之间的关系 算法调试阶段&#xff1a;发现问题&#xff0c;优化算法 项目总结阶段&#xff1a;展示项目成果 Matplotlib&#xff1a; 第三方库&#xff0c;可以快速方便地生成高质量的图表 安装Matplotlib库 Figure 对…

Linux 定时器设置

函数alarm设置的定时器只能精确到秒&#xff0c;而以下函数理论上可以精确到微妙&#xff1a; #include <sys/select.h> #include <sys/time.h> int getitimer(int which, struct itimerval*value); int setitimer(int which, const structitimerval *value, s…

idea lombok不生效_Spring Boot 集成 Lombok 让代码更简洁!

点击上方“Java之间”&#xff0c;选择“置顶或者星标”你关注的就是我关心的&#xff01;作者&#xff1a;Anoyi lombok的威力简化代码IntelliJ IDEA安装lombok插件1、菜单栏 File > Settings > Plugins > Browse repositories…安装插件2、搜索 Lombok Plugin 安装后…

IT人转型做技术型销售到底行不行

想想自己已经做了八年的销售了&#xff0c;说不上很成功自己也算满意&#xff0c;多多少少有一些相关的经验。如果有刚刚入行或者即将入行的朋友愿意从一个过来人的视角着手去对这个行当多一些了解&#xff0c;我乐于慢慢码字出来与大家分享。 对很多职业来说&#xff0c;足够的…

arcgis按属性设置符号大小

一般都在高级设置里&#xff0c;以下是两个示例 1.相同颜色&#xff0c;不同大小 2不同颜色&#xff0c;不同大小

3648

/* 2SAT,找出一组解 逆缩图序&#xff0c;拓扑排序&#xff0c;然后染色。 找出和新娘颜色相同的点 */// include file #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <cctype> #include <ctime>#i…

druiddatasource配置_Spring核心配置文件详解

点击蓝字“程序员考拉”欢迎关注&#xff01;1&#xff1a;spring的核心配置文件中的各种配置。 spring的核心配置文件的名字 叫做 applicationContext.xml&#xff0c;后期也可以通过配置文件中的配置修改名称&#xff0c;在web.xml中进行如下配置&#xff1a;<contex…

Linux两种定时器

Linux下的定时器有两种&#xff0c;以下分别介绍&#xff1a;     1、alarm     如果不要求很精确的话&#xff0c;用alarm&#xff08;&#xff09;和signal&#xff08;&#xff09;就够了     unsigned int alarm&#xff08;unsigned int seconds&#xff09;   …

origin(1)

origin窗口结构与布局 工作表 0.数据导入 0.1直接拖拽 0.2导入 配置相关参数 1.添加新列 1.1方法一 1.2方法二 2.设置x&#xff0c;y&#xff0c;z 2.1设置单列 2.2设置多列 2.3设置无关列 2.4设置误差线 2.5设置为标签 3.长短名称设置 3.1长名称设置 3.1.1方法一 3.1.2方…

Access 时间比较错误

原因 selete * from tab1 where addate>2010-12-24 14:07:44 拼接的时候改成 datetime dt datetime.now(); string sql "selete * from tab1 where addate>#"dt"#"; 把号换成#好就好了&#xff01;&#xff01;&#xff01;&#xff01;转载于:https…

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(Matplotlib绘图基础<散点图>python)

散点图&#xff08;Scatter&#xff09;&#xff1a; 是数据点在直角坐标系中的分布图 scatter() 函数 marker参数——数据点样式 添加文字——text() 函数 坐标轴设置 增加图例 绘制标准正态分布的散点图步骤 #散点图&#xff08;Scatter&#xff09;&#xff1a;是数据点在直…