![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 90
爬蜥
这个作者很懒,什么都没留下…
展开
-
深度优先搜索(Depth-first search)是如何搜索一张图的?
算法导论(MIT 6.006 第14讲)深度优先搜索算法是如何搜索一张图的?思想:对于最新发现的顶点v,如果它还有以此为起点而还未探索的边,沿此边探索。如果v的所有边已经探索完了,再回溯到发现v有起始点的那些边。一直到已经探索了从源起点可到的所有顶点为止。如果还有没探索的顶点,将它定义为一个新的源顶点,继续上述过程。 像走迷宫一样,尝试每种可能的结果,没走通,就回溯到当初分叉的...原创 2018-06-24 17:21:35 · 7322 阅读 · 1 评论 -
广度优先搜索算法(Breath-first Search)是如何搜索一张图的?
算法导论(MIT 6.006 第13讲)什么是图搜索?搜索可以理解为探索,给定一个图上的点S和A,需要找到从S到A的一个路径图的基础概念一个图用 G=(V,E) 表示,V是顶点的集合,E是边的集合。如下所示有两种图 - 无向图,V={a,b,c},E={{a,b},{b,c},{a,c} 有向图,V={a,b,c},E={(a,b),(b,a),(c,a),(b...原创 2018-06-24 17:32:39 · 2834 阅读 · 2 评论 -
如何计算图的最短路径?
算法导论(MIT 6.006 第15讲 第16讲 第17讲)最短路径的定义是什么?最短路径即拥有最小权重的路径p; 路径定义: p=<v0v0v_0,v0v0v_0,…,vkvkv_k>, 其中当0≤i<k0≤i<k0\leq iviviv_i,vi+1vi+1v_{i+1}) ∈∈\in E; 路径的权重:w(p)=Σk−1i=0w(vi,vi+1)Σi=...原创 2018-07-01 13:30:02 · 3390 阅读 · 0 评论 -
如何从动态规划的角度去看问题
算法导论(MIT 6.006 第19讲)动态规划的核心处理流程是什么?1: 定义子问题 计算子问题的数量2:猜测(尝试所有可能的方式,获取最好的) 计算选择的数量3: 关联所有的子问题 计算单个子问题所需要处理的时间4: 重用子问题结果并记下新的结果,或者使用DP的bottom-up方式(需要注意没有环) 计算总耗时5: 解决原...原创 2018-07-08 22:15:57 · 496 阅读 · 0 评论 -
如何加快Dijkstra算法的运行速度?
算法导论(MIT 6.006 第18讲)如何加快Dijkstra算法的运行速度?在Dijkstra算法中,面对单源单目标的最短路径,如果遇到了要relax的节点u就是目标节点t,显然就可以执行结束了。 Dijkstra算法Dijkstra算法的探索路径是从源一直往目标前景,那么加速它的一个角度就是从源开始探索的时候,同时从目标点向源开始探索,这种算法即Bi-Directi...原创 2018-07-08 22:21:55 · 1631 阅读 · 0 评论 -
算法之旅总览
常用算法思想回溯法分治法(Divide and Conquer)怎么用?动态规划怎么用?常见动态规划的解决思路详细分析背包问题数据结构AVL树:解决BST可能导致的长链问题Binary Search Trees(BST)一种插入、查找后继节点耗时为 lglgu 的算法van Emde Boas Trees排序算法常见排序算法图算法广度优先搜索算法(Breath-...原创 2018-12-31 23:02:53 · 132 阅读 · 0 评论