C/C++
程序员世杰
公众号『程序员世杰』,就职过各互联网大厂,资深码农,专注Java后端技术栈、AIGC等领域的技术分享
展开
-
图论最短路径算法(二)Dijkstra算法(迪杰斯特拉算法)
文章目录【初识】【算法描述】【算法分析&思想讲解】【算法图解】【应用场景】【例1】最短路径问题【初识】Dijkstra算法用来计算从一个点到其他所有点的最短路径的算法,是一种单源最短路径算法。也就是说,只能计算起点只有一个的情况。Dijkstra的时间复杂度是O (N2),它不能处理存在负边权的情况。【算法描述】设起点为s,dis[v]表示从s到v的最短路径,pre[v]...原创 2019-04-11 11:17:19 · 1584 阅读 · 1 评论 -
DP动态规划专题(一)动态规划基本模型
动态规划程序设计是对解最优化问题的一种途径、一种方法,而不是一种特殊算法。原创 2019-04-02 11:25:07 · 2484 阅读 · 2 评论 -
DP动态规划专题(二)动态规划应用例题和代码实现
本篇着重进行动态规划例题展开,关于动态规划的基本模型和基础知识,请移步DP动态规划专题(一)动态规划基本模型文章目录【例1】求最长不下降序列【例1】求最长不下降序列㈠问题描述:设有由n个不相同的整数组成的数列,记为:b(1)、b(2)、……、b(n)且b(i)<>b(j) (i<>j),若存在i1<i2<i3< … < ie 且有b(...原创 2019-04-02 12:03:50 · 823 阅读 · 0 评论 -
图论最短路径算法(一)Floyed算法(弗洛伊德算法)
文章目录Floyed-Warshall算法 O(N^3^)算法描述:算法分析&思想讲解:Floyed算法变形:应用场景【例1】最短路径问题Floyed-Warshall算法 O(N3)简称Floyed(弗洛伊德)算法,是最简单的最短路径算法,可以计算图中任意两点间的最短路径。Floyed的时间复杂度是O (N3),适用于出现负边权的情况。以下没有特别说明的话,dis[u][v]表...原创 2019-04-08 11:18:58 · 2181 阅读 · 0 评论 -
图论最短路径算法(三)SPFA算法(福特/Ford算法的队列实现)
SPFA是Bellman-Ford算法的一种队列实现,减少了不必要的冗余计算。【算法思想】初始时将起点加入队列。每次从队列中取出一个元素,并对所有与它相邻的点进行修改,若某个相邻的点修改成功,则将其入队。直到队列为空时算法结束。这个算法,简单的说就是队列优化的bellman-ford,利用了每个点不会更新次数太多的特点发明的此算法。SPFA 在形式上和广度优先搜索非常类似,不同的是广度...原创 2019-04-12 11:11:23 · 327 阅读 · 0 评论