前言
最近在考研复习,刚好学到图这一章了,然后也是学到关于图最难的几个部分了,一个是最小生成树(Prim算法和Kruskal算法),还一个就是最短距离问题了(Dijkstra算法和Floyd算法),我感觉前三个算法都还蛮好理解,就是最后一个Floyd有点没整明白,前三个算法基本上都用到贪心的思想,Prim每次都选择当前未使用的消耗最小的顶点(选点);Kruskal每次都是当前未使用的权值最小的边(选边);Dijkstra的思想和Prim的思想大致一直。
这里我就直接贴出源码了,python实现的,有兴趣的可以运行试试(反正考研也不会考python代码
)
Dijkstra算法求最短路径
# -*- coding: UTF-8 -*-
'''
*****************LLL*********************
* @Project :leetcode
* @File :lll_107Dijkstra算法求解最短路径.py
* @IDE :PyCharm
* @Author :LLL
* @Date :2022/6/1 9:22
*****************************************
'''
def dijkstra_min_distance(start, target, graph):
if start not in graph['V'] or target not in graph['V']: return '无效起点或终点!'
visited = {} # 记录顶点的访问情况
di
图算法解析:Dijkstra与Prim算法实现

最低0.47元/天 解锁文章
4925





