算法导论
思雨ing
这个作者很懒,什么都没留下…
展开
-
分治算法详解及经典例题
一.基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。问题的规模越小,越容易直接求解,解题所需的计算时间也越少。例如,对于n个元素的排序问题,当n...转载 2020-11-22 22:05:56 · 2785 阅读 · 0 评论 -
数据结构与算法
数据结构与算法前言:有一段时间,我一直搞不明白,数据结构、算法这两门课程有什么区别,后来考研复习专业课,才有了一个框架式的了解。一.数据结构数据结构三要素:逻辑结构,存储结构,数据的运算逻辑结构存储结构顺序存储:链式存储:索引存储:散列存储:运算二.算法算法一般从两种视角进行阐述:一种是关注经典的算法问题,一种是关注经典的算法设计策略。算法问题排序选择查找遍历......算法设计策略分治贪心动态规划.....原创 2020-11-22 21:35:51 · 122 阅读 · 0 评论 -
Prim算法&Kruskal算法—最小生成树
Prim-普里姆算法思路:从与已选顶点所关联的未选边中找出权重最小的边,并且生成树不存在环。其中,已选顶点是构成最小生成树的结点,未选边是不属于生成树中的边。图解:ps:Prim算法看起来与Dijkstra有些相似,笔者将在另一篇博客里对它们的区别进行分析Kruskal-克鲁斯卡尔算法思路:(1)将边按权值从小到大的顺序添加到新图中,保证添加的过程中不会形...原创 2019-11-21 21:22:58 · 284 阅读 · 0 评论 -
迪克斯特拉算法--Dijkstra's Algorithm
在图形应用中,常常需要求从图中某个结点至其余各结点的最短路径,如对于一个物流配送系统计算从配送中心到各订货点的最短路径。Dijkstra's Algorithm 基本思想:若给定带权有向图G=(V,E)和源顶点v0,构筑一个源集合S,将v0加入其中。① 对差集V\S中 个顶点vi,逐一计算从v0 至它的距离 D(v0 , vi ),若该两顶点之间没有边,则其距离为无穷大。求出其中距离最...转载 2019-11-21 20:46:39 · 789 阅读 · 0 评论