Dijkstra 算法 实现

Dijkstra算法是一种计算图中单源最短路径的技术,它从起点开始,逐步扩展最短路径到所有顶点。每次选择最近的未访问顶点并更新其到起点的路径。未经堆优化时,算法复杂度为O(n^2),但通过堆优化可降低到O(nlogn)。
摘要由CSDN通过智能技术生成

Dijkstra 算法是用于计算单源最短路径的算法。它的基本思想是,从起点开始,每次找到距离起点最近的未曾经访问过的顶点,并更新它到起点的最短路径。

算法步骤如下:

  1. 将起点加入已访问的顶点集合,并将其到起点的距离设为 0。
  2. 从起点开始,每次找到距离起点最近的未曾经访问过的顶点 u。
  3. 将 u 加入已访问的顶点集合,并更新从起点到所有顶点 v 的距离,如果从起点到 u 再到 v 的距离比目前记录的距离更小,就更新它。
  4. 重复步骤 2 和 3,直到所有的顶点都被访问过。

Dijkstra 算法的时间复杂度为 O(n^2),如果使用堆优化,则可以将时间复杂度优化到 O(nlogn)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值