【算法】Dijkstra 算法:解决单源最短路径问题

Dijkstra算法由荷兰科学家Edsger Dijkstra于1956年提出,用于解决赋权图的单源最短路径问题。算法处理非负权值的赋权图,提供从源点到所有其他顶点的最短路径。它通过初始化S和U集合,不断迭代更新顶点的最短路径,直至所有顶点进入S集合。算法的时间复杂度为O(n^2),使用二叉堆等数据结构可降低复杂度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Dijkstra 算法 

Dijkstra算法,中文名音译作迪杰斯特拉算法或戴克斯特拉算法,它是一个用来解决赋权图的单源最短路径问题的算法。

之所以这个算法名这么不好读也不好记,是因为 Dijkstra 是一个荷兰语的姓氏,很显然是它的发明者的姓氏。

荷兰科学家Edsger Wybe Dijkstra(艾兹赫尔·戴克斯特拉)在1956年发现了该算法。

赋权图

什么叫赋权图呢?就是每一条边都有一个权值的有向图或无向图。赋权图的权值可大可小,可正可负。

不过 Dijkstra 算法只处理那些所有边的权值都为非负的赋权图。严格讲,Dijkstra 算法解决的是权值非负的赋权图中的单源最短路径问题。

赋权图可以是有向的也可以是无向的,对此Dijkstra算法并不挑剔,都能处理。

单源最短路径问题&n

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶锦鲤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值