Dijkstra迪杰斯特拉算法及C++实现

Dijkstra迪杰斯特拉算法及C++实现

Dijkstra算法是典型的最短路径路由算法,用来计算一个节点到其他所有节点的最短路径。算法的基本思想和流程是:
1. 初始化出发点到其它各点的距离dist[]以及各点的前一个访问点pre[];
2. for(i=2…n)
{
找出dist[]中未访问过点中的最小值,记录为best;
以dist[best]为基准更新dist[];
更新pre[];
}
一个有向图
从1出发,第一次找到最小点2,更新dist[],然后找到最小点4,以此类推,以当前最小为最优(贪心算法),列出下表:

迭代次数 s best dist[2] dist[3] dist[4] dist[5]
1(初始化) {1} - 10 max 30 100
2 {1,2} 2 10 60 30 100
3 {1,2,4} 4 10 50 30 90
4 {1,2,4,3} 3 10 50 30 60
5 {1,2,4,3,5} 5 10 50 30 60

具体实现:

#include <iostream>
#include <vector>
const int maxdist = 9999;
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值