随笔分类 - 数据结构与算法
摘要:算法导论-动态规划原理 1. 动态规划的概念 动态规划 (dynamic programming) 与分治方法相似,都是通过组合子问题的解来求解原问题(programming 指的是一种表格法,并非编写计算机程序)。 动态规划应用于子问题重叠的情况,即不同的子问题具有公共的子子问题(子问题的求解是递
阅读全文
摘要:Kruscal 算法(C++) 1. Kruscal 算法简介 Kruscal 最小生成树算法起始于一个空的图,并按照以下规则从边集中选择边。 不断重复地选择未被选中的边中权重最轻且不会形成环的一条。 Kruscal 算法通过逐条增加边来构造最小生成树。在保证不出现环的同时,它总简单地选择当前所余的
阅读全文
摘要:一、Dijkstra 算法的基本思想 Dijkstra 算法是解决单源最短路径问题的一般方法,它是一种贪心算法,要求图中所有边的权重非负。它的基本思想是:从一个起始顶点开始向外扩张,持续不断地将生成的图扩展到已知距离和最短路径的区域。简单地说,就是先加入最近的顶点,然后加入更远一些的顶点。 Dijk
阅读全文