Dijstra算法的Python实现
来源:互联网 发布:seo搜索引擎是什么 编辑:程序博客网 时间:2024/05/16 15:49
#_*_coding=utf-8_*_import numpy as npmaxNum=1000000 #用一个大数表示无穷大def Dijkstra(G,S): nV=len(G[0]) #初始化顶点访问标签 label=np.array([False]*nV) label[S]=True #初始化距离向量 Dis=np.array([maxNum]*5) for i in range(nV): Dis[i]=G[S][i] Dis[S]=0 for i in range(nV): u=minDis(G,label,Dis) if u==nV: break if Dis[u]==maxNum: continue label[u]=True for j in range(5): if G[u][j]!=maxNum and Dis[j]>(Dis[u]+G[u][j]): Dis[j]=Dis[u]+G[u][j] return Disdef minDis(G,label,Dis): u=0 nV=len(G[0]) #顺序查找第一个未访问顶点,全部访问则返回nV while(u<nV and label[u]): u+=1 #查找距离更小的未访问结点 l=range(u+1,nV,1) for i in l: if not label[i] and Dis[i]<Dis[u]: u=i return uG=np.array([[maxNum,7,6,maxNum,maxNum], [7,maxNum,maxNum,3,4], [6,maxNum,maxNum,maxNum,2], [maxNum,3,maxNum,maxNum,1], [maxNum,4,2,1,maxNum]])for i in range(len(G[0])): print Dijkstra(G,i)>>> =============== RESTART: E:\DS&A\算法实现\Dijkstra\Dijkstra.py ===============[0 7 6 9 8][7 0 6 3 4][6 6 0 3 2][9 3 3 0 1][8 4 2 1 0]
阅读全文
0 0
- Dijstra算法的Python实现
- java 实现的Dijstra算法
- dijstra(迪杰斯特拉)算法的简单实现
- Dijstra算法 C++实现
- dijstra算法 c语言实现
- 基于优先队列PriorityQueue的Dijstra算法之Java实现
- Dijstra的greedy简单实现
- Dijstra算法实现求解单源最短路径问题
- Dijstra算法
- Dijstra算法
- dijstra算法
- dijstra算法
- Dijstra算法
- Dijstra算法
- dijstra算法
- 借鉴dijstra写的prim算法
- Dijstra算法的代码实现及解释(最短路径问题)
- 有向图中Dijstra最短路径算法的邻接表实现
- 暑期项目实训之健康宝APP(一)
- GPS启动流程及数据流向分析
- 美团内推 类似题目
- Cow Contest
- EU4-52: Discussing possible solutions
- Dijstra算法的Python实现
- C++Regex库安装小结
- PAT乙级1012. 数字分类 (20)
- C语言基础-itoa和atoi函数的使用和自己实现
- 硬币问题(经典dp)
- C++Lambda表达式详解
- POJ1182食物链
- 安装mysql
- 【hpu oj 1019 985的买饮料难题 [数学、DP]】