
算法
interesting_code
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
克鲁斯卡尔算法生成最小生成树
克鲁斯卡尔算法的介绍 1)克鲁斯卡尔(Kruskal)算法,是用来求加权连通图的最小生成树的算法。 2)基本思想:按照权值从小到大的顺序选择 n-1条边,并保证这 n-1条边不构成回路 3)具体做法:首先构造一个只含 n个顶点的森林,然后依权值从小到大从连通网中选择边加入到森林中,并使森林中不产生回路,直至森林变成一棵树为止 首先我们得明白,在解决求最小生成树的算法里,主要就是克鲁斯...原创 2020-02-22 17:05:23 · 12956 阅读 · 2 评论 -
普利姆算法生成最小生成树
普里姆算法介绍 普利姆(Prim)算法求最小生成树,也就是在包含 n个顶点的连通图中,找出只有(n-1)条边包含所有 n个顶点的连通子图,也就是所谓的极小连通子图 什么是最小生成树 最小生成树(Minimum Cost Spanning Tree),简称 MST。给定一个带权的无向连通图,如何选取一棵生成树,使树上所有边上权的总和为最小,这叫最小生成树,如图 简而言之,最小生成树就是将图中所...原创 2020-02-22 16:45:19 · 8634 阅读 · 2 评论 -
贪心算法举例详解
什么是贪心算法 其实我个人觉得贪心算法还是很好理解的,起码比KMP好理解多了。。。。 1)贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优 (即最有利)的选择,从而希望能够导致结果是最好或者最优的算法 2)贪婪算法所得到的结果不一定是最优的结果(有时候会是最优解),但是都是相对近似(接近)最优解的结果 贪心算法的应用-集合覆盖 可能介绍了贪心算法的定义,大家不是...原创 2020-02-21 22:37:48 · 1527 阅读 · 0 评论 -
动态规划算法解决背包问题
什么是动态规划算法 1)动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法 2)动态规划算法与分治算法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。 3)与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。 (即下一个子阶段的求解...原创 2020-02-21 13:11:02 · 4662 阅读 · 0 评论 -
分治算法思想及经典案例
分治算法介绍 1)分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 2)分治算法可以求解的一些经典问题 二分搜索 大整数乘法 棋盘覆盖 合并...原创 2020-02-20 22:03:27 · 3115 阅读 · 2 评论