图---Dijstra

求单源最短路径用得最多的算法应该就是Dijstra算法了,但是该算法有一个缺点就是不能处理负权,如果遇到负权大家可以参考后面介绍的BellMan Ford算法进行处理。

下面介绍下Dijstra算法的主要步骤:

1. 初始化集合U,该集合表示已经入选最小的节点集合

2. 初始化D,该数组表示源点s到该点的最小距离,没有直接相连则视为无穷大

3. 选出距离源点最小距离的点w

4. 对直接与w点相连的点进行处理,D[v] ← min(D[v], D[w] + A[w][v]):即对与w点直接相连的点,如果存在一条更短路劲达到该点,则刷新该点的D值。

 

Dijkstra(s, A, D) 
	U = {s};

	for each vertex v
		D[v] ← A[s][v]

	while U ≠ V
		Select vertex w ∈ V-U with minimum D[w]
		U ← U ∪ {w}

		for each vertex v adjacent to w
			D[v] ← min(D[v], D[w] + A[w][v])


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值