标签:终点 短路 最小 生成 Dijkstra 时间 复杂度 起点
最短路:可以分为单起点终点最短路和多起点多终点最短路。它包含了很多算法Dijkstra,floyd等等。
当图中,边权全都是正数,一般采用Dijkstra
朴素Dijkstra
它的时间复杂度只和点有关,适用于稠密图(边较多)。一般而言,如果m与n^2是一个级别可以认为是稠密图。
//时间复杂度O(n^2),n是点数
堆优化Dijkstra
适用于稀疏图(边较少)
//时间复杂度O(m*logn) m是边数
存在负权边,可以采用bellman-ford,spfa,Floyd。
bellman-ford
//时间复杂度O(n*m)
spfa
//时间复杂度一般是O(m) 最坏是O(n*m)
以上算法都是用于单起点,单终点最短路
Floyd
适用于多起点,多终点最短路。
//时间复杂度一般是O(n^3)
接着,最小生成树。
Prim
Kruskal
标签:终点,短路,最小,生成,Dijkstra,时间,复杂度,起点 来源: https://blog.csdn.net/Pbw_666/article/details/122765106
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。