
贪心算法
日拱一卒的Alex
一个乐观善良且温暖的人,认真对待生活中的每一天,成为更好的自己
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode 402. Remove K Digits
LeetCode 402. Remove K Digits原创 2017-08-15 10:30:48 · 129 阅读 · 0 评论 -
Dijkstra算法JAVA实现
1.题目 给定带权有向图G=(V,E,W),以及源点v∈V,求从v点出发到达其它顶点的最短路径。 2.思路 1)设集合S中的顶点为当前已经找到最短路径的顶点。初始:S={v},当S=V时算法结束。 2)将从源点v到顶点u且只经过集合S中顶点的路径称为: 从v到u相对于S集合的最短路径。 dist[原创 2017-09-05 16:56:13 · 519 阅读 · 0 评论 -
哈夫曼树的最长带权路径WPL算法
1.题目 给出一组树节点集合(每个节点均有权值),求其最长带权路径 2.思路 1)首先利用给出的集合构造Huffman树 将原节点集合按其权值从小到大排序,之后每次抽取前两个(最小权值)的节点剔除集合,并将两个权值想加之后赋给新的节点,再将新节点插入集合中。一直重复上述步骤直到集合中只有一个节点 2)利用Huffman树的特性求WPL 由哈夫曼树的特性可知,其数据节点均是叶子节原创 2017-08-30 17:10:33 · 7413 阅读 · 0 评论 -
Prim算法的JAVA实现
1.算法思想 设有向图G的顶点集合为V={1,2,...,n},初始选择一个顶点加入 “已选集合”S中,选择连接S与V-S集合的最短边e=(i,j),其中i∈S,j∈V-S,将e加入树T中,j加入S,一直执行上述操作直到S=V为止。 2.JAVA代码 static int MAX = Integer.MAX_VALUE; static void prim(int[][]原创 2017-08-30 19:28:56 · 920 阅读 · 0 评论 -
Kruskal算法的JAVA实现
1.算法描述 克鲁斯卡尔算法需要对图的边进行访问,所以克鲁斯卡尔算法的时间复杂度只和边又关系,可以证明其时间复杂度为O(eloge)。 2.算法思想 1.将图各边按照权值进行排序 2.将图遍历一次,找出权值最小的边,(条件:此次找出的边不能和已加入最小生成树集合的边构成环),若符合条件,则加入最小生成树的集合中。不符合条件则继续遍历图,寻找下一个最小权值的边。原创 2017-08-31 12:26:01 · 2524 阅读 · 0 评论