
算法知识
文章平均质量分 61
好_好吃饭
现在在写数据结构,偶尔会更新算法相关知识
展开
-
最小生成树——Prim和Kruskal算法
这个算法和Prim用法是一致的,但是得到的方式却大不相同,Prim是找任意一个结点连着的最小的边,从而不断更新到达各个结点的最小花费。时间复杂度是:O(n*n),更适合稠密图;而Kruskal算法是找到最小的边,看这条边的两点结点是否在相同的集合,如果是,说明形成回路,如果不是,及时更新两结点所在的集合,直至所有集合都是1。时间复杂度:O(eloge),更适合稀疏图。原创 2024-11-25 21:13:09 · 401 阅读 · 0 评论 -
Djskstra算法
将所有dist[i] (源点到各个点之间的距离的描述)都设置成map[u][i],如果源点到i点有权值,说明是通路,就把u设置成i的前驱,否则,将前驱设置成-1。在(2)中已经找到了离的最近的点,那么我判断非S集合的点是否能够通过最近的点来走捷径,如果可以就依次进行更新dist数组,同时更新前驱p数组。其实dijkstra算法采用的贪心策略是选择特殊路径长度最短的路径。(4)判断是否要结束。即找的最近点没有改变,是初始化指向的源点。(6)最后进行输出打印,用栈先进后出的性质来输出路径。原创 2024-11-21 21:52:46 · 263 阅读 · 0 评论 -
最大公约数,最小公倍数以及同余原理
以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数。原创 2024-11-09 10:56:24 · 933 阅读 · 0 评论