算法

C++ 入门

0 条评论 C++ 算法 5+1
认识程序设计是给出解决特定问题程序的过程,软件开发过程中的重要步骤。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程一般包括分析、设计、编码、测试、调试等不同阶段。程序语言分类程序语言包括机器语言、汇编语言、高级语言。机器语言是用二进制代码表示的、计算机能直接识别和执行的一种机器指令的集合,它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言是第一代计...

桶排序

0 条评论 C++ 算法 5+1
桶可以用作统计一篇文章中每个不同字符有多少个等问题,也能排序。桶排序给你一个数列,请你排序。数列:1 5 2 2 3 4 1我们把每个数放到桶的相应下表,比如1就要放到buck[1],2就放到buck[2]。上面哪个数据桶数组如下列所示,第一行是同数组的下标,第二行是其内容。$$\begin{matrix} bucket[]&1&2&3&4&5&...

最小生成树 Prim 与 Kruskal

0 条评论 C++ 算法 5+1
生成树生成树是指在一个无向联通图上面保留 $V-1$ 条边,且保持联通。因此图的生成树并不唯一。比如下图就是一个图的生成树最小生成树上文说过生成树不唯一,那么就一定会有生成树的大小。生成树上面的所有权值之和就是它的代价,代价最小的生成树则为最小生成树。最小生成树在实际生活中也有着很大的意义,比如“现在希望修建多条条公路联通几个城市,如何修路总里程最小呢?”PrimPrim 将生成树上的点集合...

多源点最短路径 Floyd

0 条评论 C++ 算法 5+1
如果有一张图,我希望获得从每一个点到其他另外的所有点的距离的之和,那么你该怎么做呢?下面这个 Floyd 算法就非常适用FloydFloyd 采用了动态规划的思想,来解决一个有向图 $G=(V,E)$ 上每一对顶点间的最短路径问题。它允许权值为负数。对于任意一对顶点 $i$ 和 $j$ ($i,j \in V$),观察从 $i$ 到 $j$ 且经过中间顶点的最短路径,设 $p$ 为其中的一条...

单源最短路径 Dijkstra

0 条评论 C++ 算法 5+1
当你碰到一个题,希望你找到一条从 $A$ 到 $B$ 的路径,且它总里程最短。然而你暴力枚举一定是超时的。所以现在我们就需要一个新的方法来计算。DijkstraDijkstra算法能够非常好的解决 $G=(V,E)$ 上带权的单源最短路径问题。我们从源点 $s$ 到集合里面的顶点最终最短路径的权值都已经确定了,它反复将选择能成为最短路径上的出边 $u$ 放入集合 $S$ ,对于所有的出边 $...