您的位置:首页 > 编程语言 > Go语言

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

2015-05-15 00:12 211 查看
我研一下学期选修了网络管理,因为是限选课所以我没有认真上课,今天因为快结课考试了,我才去,然后我发现了一个大秘密。。。。。。

原来老师从第三节课已经开始讲算法导论的知识了,我是不是错过了什么。。。

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

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

图(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



上面是举例

邻接表

G=(V,E)的邻接表由数组Adj组成,adj【v】,v属于V,包含了图中所有和v相邻的点。

例如:

adj【i】={2,3}表示由i出发的有向点~

最小生成树问题

使用动态规划算法解决

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

1.最优子结构

2.重叠子问题

PRIME算法介绍

由于数学符号,我就不手写了





简单描述

1.先选取5,然后把周围的直接联通点都标上权值,选取权值最小的6,然后以6为中心,标识直接联通点,如果比之前的权值小,就更新,6选择了2.再以2为中心,2选择了1.然后看标识的权值,按照从小到大的顺序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息