算法竞赛备赛——【图论】求最短路径——小结

最短路算法

1.Floyd算法:O(|V|^3),多源最短路,适用于出现负边权的情况,但无法处理存在负权回路的情况。
Floyd算法

2.Dijkstra算法:O(|V|^2),单源最短路,不能处理存在负边权的情况。 边多 时适用
Dijkstra算法 & 堆优化

3.Bellman-Ford算法:O(|V||E|),单源最短路,适用于出现负边权的情况,但无法处理存在负权回路的情况。边少 时使用 可以检验负环
Bellman-Ford算法 & SPFA

4.堆优化Dijkstra算法:O((|V|+|E|)*log|V|),单源最短路,不能处理存在负边权的情况。

5.队列优化Bellman-Ford算法(SPFA):时间复杂度玄学,单源最短路,适用于出现负边权的情况,但无法处理存在负权回路的情况。

SPFA能判断带环负权图

权值非负:堆优化Dijkstra----->SPFA

有负边权:SPFA

相关推荐
云和数据.ChenGuang38 分钟前
Raft协议 一种专为分布式系统设计的共识算法
运维·服务器·算法·区块链·共识算法
重生之我是Java开发战士2 小时前
【数据结构】深入理解顺序表与通讯录项目的实现
数据结构·算法
anlogic2 小时前
Java基础 8.11
java·开发语言·算法
sjh21004 小时前
STM32的计数模式和pwm模式
java·stm32·算法
dlraba80210 小时前
机器学习-----K-means算法介绍
算法·机器学习·kmeans
芥子须弥Office11 小时前
从C++0基础到C++入门 (第二十五节:指针【所占内存空间】)
c语言·开发语言·c++·笔记
啊阿狸不会拉杆11 小时前
《算法导论》第 14 章 - 数据结构的扩张
数据结构·c++·算法·排序算法
闪电麦坤9511 小时前
数据结构:栈(Stack)
数据结构
Q741_14712 小时前
如何判断一个数是 2 的幂 / 3 的幂 / 4 的幂 / n 的幂 位运算 总结和思考 每日一题 C++的题解与思路
开发语言·c++·算法·leetcode·位运算·总结思考
小王爱学人工智能12 小时前
快速了解DBSCAN算法
算法·机器学习·支持向量机