算法
Zcmmma
这个作者很懒,什么都没留下…
展开
-
算法课知识点总结
Course ProgressIntroductionData structures, NP-completenessGreedy algorithmsDivide-and-conquerDynamic programmingGraph algorithmsSearch algorithmsHeuristic algorithmsNetwork flowschapter1-Introduction时空复杂度算法必须满足下列条件Input(输入)Output(输出.原创 2020-07-25 10:37:40 · 1372 阅读 · 0 评论 -
Dijkstra、Floyd、Kruskal、Prime算法
Dijkstra、Floyd、Kruskal、Prime算法是图论中四个比较基础的算法,刚入门时较容易混淆,故总结如下(本文只是对比总结,具体示例代码引自其他博客)带权图分为有向和无向,无向图的最短路径又叫做最小生成树,有prime算法和kruskal算法;有向图的最短路径算法有dijkstra算法和floyd算法。适用场景Dijkstra:单源最短路,求给定起点到所有其他点的最短路径。采用的是贪心的思想,路径不能有负权(带负权用Bellman-Ford算法)Floyd:多源最短路径(即任意两.原创 2020-06-07 18:15:13 · 628 阅读 · 0 评论 -
贪心、分治和动规
贪心、分治和动规是算法的入门思想,初学时容易混淆,故对比总结如下两个概念重叠子问题:如果一个问题可以被分为若干个子问题,且这些子问题会重复出现,那么就称这个问题拥有重叠子问题最优子结构:如果一个问题的最优解可以由其子问题的最优解有效地构造出来,那么称这个问题拥有最优子结构三个思想贪心:解决最优化问题,并希望由局部最优策略来推得全局最优结果。贪心算法适用的问题必须满足最优子结构分治:将原问题划分成若干个规模较小而结构与原问题相同或相似的子问题,然后分别解决这些子问题,最后合并子问题的解,.原创 2020-06-07 16:35:51 · 312 阅读 · 0 评论