![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
什么时候能发财
这个作者很懒,什么都没留下…
展开
-
Dijkstra
已知n个结点的有向图G=(V,E)和边的权函数C(e).求G中v0到其他各结点的最短路径。 最优度量标准:每次选择与v0最短路径的结点 dijkstra算法: 设有两个顶点集合S和V,S中存放图中已找到最短路径的顶点,V存放图中剩余结点; (1)初始化:集合S初始为{0},dist[]的初始值为dist[i]=arc[0][i],i=1,2…n-1 (2)从顶点集合V-S中选出Vj,满足dist[j]=min{dist[i],i <=V-S} ,Vj就是当前求得的一条从V0出发的最短路径的终点,令S=原创 2020-09-28 18:50:36 · 83 阅读 · 0 评论 -
最小生成树
1.基本概念 带权连通无向图G=(V,E), 生成树不同,每棵树的权重也不同,设R是G的所有生成树的集合,若T是R中权值之和最小的那一颗,那T就是G的最小生成树 一个有n个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有n个结点,并保持图连通的最少的边 生成树恰好有|V|-1 条边 2.Prim(普利姆)算法 从已有顶点中选择权值最小的边加入 初始化:向空树T=(V,E)中添加G=(V,E)的任一顶点u,使得Vt={u}, E!=NULL 循环(直到Vt=V):从Vt的一个顶点出发中选择一个具有原创 2020-09-28 18:50:04 · 109 阅读 · 0 评论 -
动态规划dp
与分治算法相似,通过组合子问题的解来求解原问题 分支方法将问题划分为互不相交的子问题,递归地求解子问题,再将他们组合起来,求出原问题的解 动态规划应用于子问题重叠的情况,即不同的子问题具有公共的子子问题,在这种情况下,分治算法会做许多不必要的工作反复求解公共子子问题,动态规划则是对每个子子问题只求解一次,将其解保存在一个表格中,从而无需每次求解一个子子问题时都重新计算 动态规划通常用来求解最优化问题,这类问题有很多可行解,每个解都有一个值,希望寻找具有最优值的解 4个步骤设计一个动态规划算法: 1.刻画一个原创 2020-09-28 18:49:34 · 115 阅读 · 0 评论