python编写dijkstra算法
来源:互联网 发布:mac 桌面下方出现白条 编辑:程序博客网 时间:2024/05/16 15:32
'''示例结果:init[1, 0, 0, 0, 0, 0] [0, 30, 15, 1000, 1000, 1000] [0, 0, 0, 0, 0, 0]process[1, 1, 1, 1, 1, 1] [0, 25, 15, 50, 40, 30] [2, 1, 5, 4, 3, 0]'''MAX_NUM = 1000v_len = 6 #顶点数S = [0 for i in range(v_len)] #作为mark容器,检验顶点是否已经被添加path = S[:] #存储添加顶点过程dist = [] #放置到每个顶点的最短长度'''邻接矩阵'''edge = [ [0,30,15,MAX_NUM,MAX_NUM,MAX_NUM], [5,0,MAX_NUM,MAX_NUM,20,30], [MAX_NUM,10,0,MAX_NUM,MAX_NUM,15], [MAX_NUM,MAX_NUM,MAX_NUM,0,MAX_NUM,MAX_NUM], [MAX_NUM,MAX_NUM,MAX_NUM,10,0,MAX_NUM], [MAX_NUM,MAX_NUM,MAX_NUM,30,10,0] ]def init(start): for i in range(0,v_len): dist.append(edge[start][i]) dist[start] = 0 S[start] = 1 path[0] = start print 'init\n',S,dist,path #初始化结果显示def find_min(): #开始处理 print 'process' u = 0 for i in range(0,v_len-1): mini = MAX_NUM for j in range(0,v_len): if(not S[j] and dist[j]<mini): u = j mini = dist[j] S[u] = 1 path[i] = u for k in range(0,v_len): if(not S[k] and edge[u][k]<MAX_NUM and dist[u]+edge[u][k]<dist[k]): dist[k] = dist[u] + edge[u][k] print S,dist,path; #显示结果def py_dijkstra(start): init(start) find_min()if(__name__=="__main__"): py_dijkstra(0) #以0为源点
0 0
- python编写dijkstra算法
- Python Dijkstra算法
- python实现Dijkstra算法
- python -- Dijkstra算法
- java编写Dijkstra单源最短路径算法
- python编写Floyd算法
- python编写PSO算法
- Python算法编写
- 用java编写的单源最短路径算法,Dijkstra算法
- python最短路径算法,基于dijkstra
- 算法:Python实现dijkstra最短路由
- C语言编写Dijkstra算法及生成图
- 用Python 编写Logistics算法
- 【Python排序搜索基本算法】之Dijkstra算法
- 【算法——Python实现】有权图求单源最短路径Dijkstra算法
- 【Python排序搜索基本算法】之Dijkstra最短路径算法(Dijkstra's Shortest-Path Algorithm)
- python dijkstra
- Dijkstra算法
- 第五周 阅读程序(2)
- 生成PowerDesigner16.5设计图大图片的方法
- Linux常用Terminal命令与快捷键
- 更新php的版本
- 4月风怒(2)
- python编写dijkstra算法
- แทงบอลออนไลน์ผ่านเว็บคนไทย
- LeetCode | Path Sum II
- 第5周项目1
- ubuntu下安装f.lux眼睛保护程序
- tomcat环境变量的配置
- 第五周——静态成员运用——时间类
- Manacher算法--O(n)最长回文子串算法
- cocoapods安装Afnetworking后,无法include<AFNetworking/AFNetworking.h>