贪婪算法(Greedy algorithm)-算法学习之旅(一)

我研一下学期选修了网络管理,因为是限选课所以我没有认真上课,今天因为快结课考试了,我才去,然后我发现了一个大秘密。。。。。。
原来老师从第三节课已经开始讲算法导论的知识了,我是不是错过了什么。。。

废话不多说,介绍贪婪算法

首先普及一下图论的基本先验知识

图(Graphs)包括有向图和无向图。
表示为:
G=(V,E);
V是顶点集,E是边集。
有向图(i,j)属于E,i—->j;
无向图(i,j)属于E,i—–j;
|E| = O(|V|*|V|);

图的表示方法

1.邻接矩阵

对于G=(V,E);V = {12…N};
用n*n的矩阵表示A表示G,其中A【i,j】= 1,if(i,j)属于E
0,if(i,j)不属于E
贪婪算法(Greedy algorithm)-算法学习之旅(一)_第1张图片
上面是举例

邻接表

G=(V,E)的邻接表由数组Adj组成,adj【v】,v属于V,包含了图中所有和v相邻的点。
例如:
adj【i】={2,3}表示由i出发的有向点~

最小生成树问题

使用动态规划算法解决

动态规划算法需要满足的条件 ##

1.最优子结构
2.重叠子问题

PRIME算法介绍

由于数学符号,我就不手写了
贪婪算法(Greedy algorithm)-算法学习之旅(一)_第2张图片
贪婪算法(Greedy algorithm)-算法学习之旅(一)_第3张图片

简单描述

1.先选取5,然后把周围的直接联通点都标上权值,选取权值最小的6,然后以6为中心,标识直接联通点,如果比之前的权值小,就更新,6选择了2.再以2为中心,2选择了1.然后看标识的权值,按照从小到大的顺序。

你可能感兴趣的:(面试,算法导论,贪婪算法)