博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2020年8月21日

摘要: 算法思路 准备:边类,图类; 根据图的邻接矩阵获得边集合,并将边按照边的权值进行排序(升序); 依次取边集合中的边,如果取出来的这条边不和已经选择的边构成回路就添加这条边,否则取边集合中的下一条边。 Q:怎么判断新取的边和已经选取的边会不会构成回路? A:引入一个数组,记录每个顶点的终点,如果新取的 阅读全文

posted @ 2020-08-21 18:59 池塘鱼 阅读(329) 评论(0) 推荐(0) 编辑

摘要: 最小生成树 最小生成树(Minimum Cost Spanning Tree),简称MST。 给定一个带权的无向连通图,如何选取一棵生成树,使树上所有边上权的总和为最小,这叫最小生成树 。 最小生成树的特征:N个顶点,一定有N-1条边;包含全部顶点;N-1条边都在图中。 求最小生成树的算法主要是普里 阅读全文

posted @ 2020-08-21 14:02 池塘鱼 阅读(383) 评论(0) 推荐(0) 编辑

摘要: 迪杰斯特拉算法VS弗洛伊德算法 迪杰斯特拉算法是求单源最短路径,通过选定的被访问顶点,求出从出发访问顶点到其他顶点的最短路径;弗洛伊德算法中每一个顶点都是出发访问点,所以需要将每一个顶点看做被访问顶点,求出从每一个顶点到其他顶点的最短路径。 弗洛伊德算法比迪杰斯特拉算法好实现,但是时间复杂度要更高。 阅读全文

posted @ 2020-08-21 13:26 池塘鱼 阅读(265) 评论(0) 推荐(0) 编辑

摘要: https://www.jianshu.com/p/ff6db00ad866 这篇文章相当清楚。 对代码做了一点小改动,让输出结点名而不是结点下标。 package com.ex.greedy; public class Dijkstra { static final int N=10000; pu 阅读全文

posted @ 2020-08-21 11:06 池塘鱼 阅读(70) 评论(0) 推荐(0) 编辑