算法 第4版
文章平均质量分 69
mingluoxuan
这个作者很懒,什么都没留下…
展开
-
1:Stack实现
1:先进后出栈的实现: 才用头结点的方式: package com.algorithm.common; import java.util.Iterator; /** * 链表实现先进后出的Stack * @author lijunqing */ public class Stack<Item> implemen...原创 2013-08-01 14:53:30 · 102 阅读 · 0 评论 -
1:带权值的无向图
1: 前面已经介绍了无向图是不带权值的 ,现在看带权值的无向图 权值 的定义类 两个点 一个权重 /** * 边 * @author lijunqing */ public class Edge implements Comparable<Edge> { private final int v; private final int ...原创 2013-09-05 16:30:22 · 2693 阅读 · 0 评论 -
9:图的宽度优先搜索BSF
算法描述(图邻接点表示) 1: 取一个节点入队 2:标记为已经访问,循环判断队列是否为空 3:不为空, 依次访问该节点的其他邻接点,如果没访问,标记已经访问,入队 4:队列为空 ,搜索完成 public class BSF { private boolean[] marked; private int count; priv...原创 2013-09-05 15:48:08 · 159 阅读 · 0 评论 -
8: 图的深度优先
1: 图的深度游戏:(邻杰表表示) 从 v节点开始: 遍历v的邻接点g, g未被访问,再遍历g的邻接点 是一个递归的过程,然后再回到v 就是对一个图的深度优先遍历 具体过程 看: 附件ppt: package com.algorithm.common.graph; /** * 图深度优先 * @author lijunqing */...原创 2013-08-05 10:36:45 · 102 阅读 · 0 评论 -
7: 图-1 图表示
1 : 图: Graph: 图: 无向图, 有向图 2: 图表示: 图的邻接矩阵 和 图的邻接表 主要以 图的 邻接表为主: 邻接表表示法将图以邻接表(adjacency lists)的形式存储在计算机中。所谓图的邻接表,也就是图的所有节点的邻接表的集合;而对每个节点,它的邻接表就是它的所有出弧。邻接表表示法就是对图的每个节点,用一个单向链表列出从该节点出发...原创 2013-08-02 15:54:19 · 162 阅读 · 0 评论 -
6:动态连通性 (并查集)
1: 动态连通性 可以检测所给的点中 是否有环的: 概念: 并查集:(union-find sets) 一种简单的用途广泛的集合. 并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多,如其求无向图的连通分量个数等。最完美的应用当属:实现Kruskar算法求最小生成树。 并查集的精髓(即它的三种操作,结合实现代码模板进行理解): ...原创 2013-08-02 15:14:28 · 346 阅读 · 0 评论 -
5:大顶堆: 最大优先队列
1: 与前面说的最小优先队列相反 堆的排序也相反 : package com.algorithm.common; import java.util.Iterator; import java.util.NoSuchElementException; /** * 大顶堆排序 最大优先队列 * @author lijunqing */ public...原创 2013-08-02 12:09:34 · 295 阅读 · 0 评论 -
4:堆排序实现的最小优先队列
1: 优先队列 不是先进先出,是按照冒个规则,出: 2: 堆排序 1: 建堆 2: 堆顶与最后一个节点调换,堆顶出堆,重新调整堆 小顶堆: 节点i< 2i(左孩子) && i< 2i+1 (右孩子) 建立堆:(递归)当前i节点 和i/2 比较 如果i小于i/2 交换 调整堆: 顶点开始 ,...原创 2013-08-01 16:20:20 · 127 阅读 · 0 评论 -
3:Bag单链表实现
1: 简单的单链表 不是基于数组 package com.algorithm.common; import java.util.Iterator; /** * 单链表 (只是用于添加数据) * @author lijunqing */ public class Bag<Item> implements Iterable<Item&g...原创 2013-08-01 16:17:00 · 145 阅读 · 0 评论 -
2:Queue实现
1: 先进先出 队列的实现: first结点 负责出队 last结点 负责入队 package com.algorithm.common; import java.util.Iterator; import java.util.NoSuchElementException; /** * 先进先出队列 * @author lijunqing *...原创 2013-08-01 15:37:50 · 87 阅读 · 0 评论 -
冒泡和快速排序java
1: 冒泡最简单一种: /** * 算法效率o(n*n) * @param array * @return */ public void bubbleSort(int[] array) { if(array == null) { throw new IllegalArgumentExcepti...原创 2014-04-19 18:01:45 · 94 阅读 · 0 评论