2013年11月27日

深度优先搜索和广度优先搜索(转)

摘要: 转自:http://blog.csdn.net/andyelvis/article/details/1728378 有两种常用的方法可用来搜索图:即深度优先搜索和广度优先搜索。它们最终都会到达所有连通的顶点。深度优先搜索通过栈来实现,而广度优先搜索通过队列来实现。 深度优先搜索: 下面图中的数字显示了深度优先搜索顶点被访问的顺序。 为了实现深度优先搜索,首先选择一个起始顶点并需要遵守三个规则: (1) 如果可能,访问一个邻接的未访问顶点,标记它,并把它放入栈中。 (2) 当不能执行规则1时,如果栈不空,就从栈中弹出一个顶点。 (3) 如果不能执行规则1和规则2,就完成了整个搜索过... 阅读全文

posted @ 2013-11-27 16:57 依蓝jslee 阅读(183) 评论(0) 推荐(0) 编辑

线段树(转)

摘要: 转自:http://www.cnblogs.com/shuaiwhu/archive/2012/04/22/2464583.html 线段树在一些acm题目中经常见到,这种数据结构主要应用在计算几何和地理信息系统中。下图就为一个线段树: (PS:可能你见过线段树的不同表示方式,但是都大同小异,根据自己的需要来建就行。)1.线段树基本性质和操作 线段树是一棵二叉树,记为T(a, b),参数a,b表示区间[a,b],其中b-a称为区间的长度,记为L。 线段树T(a,b)也可递归定义为:若L>1 : [a, (a+b) div 2]为 T的左儿子; [(a+b) d... 阅读全文

posted @ 2013-11-27 11:11 依蓝jslee 阅读(166) 评论(0) 推荐(0) 编辑

java IO

摘要: Java流的分类按流向分:输入流: 程序可以从中读取数据的流。输出流: 程序能向其中写入数据的流。按数据传输单位分:字节流: 以字节为单位传输数据的流字符流: 以字符为单位传输数据的流按功能分:节点流: 用于直接操作目标设备的流过滤流: 是对一个已存在的流的链接和封装,通过对数据进行处理为程序提供功能强大、灵活的读写功能。java.io常用类 JDK所提供的所有流类位于java.io包中,都分别继承自以下四种抽象流类。InputStream:继承自InputStream的流都是用于向程序中输入数据的,且数据单位都是字节(8位)。OutputStream:继承自OutputStream的流都是. 阅读全文

posted @ 2013-11-27 10:57 依蓝jslee 阅读(281) 评论(0) 推荐(0) 编辑

一致性 hash 算法(转)

摘要: 转自:http://blog.csdn.net/sparkliang/article/details/52793931基本场景 比如你有N个cache服务器(后面简称cache),那么如何将一个对象object映射到N个cache上呢,你很可能会采用类似下面的通用方法计算object的hash值,然后均匀的映射到到N个cache; hash(object)%N 一切都运行正常,再考虑如下的两种情况; 1. 一个cache服务器m down掉了(在实际应用中必须要考虑这种情况),这样所有映射到cache m的对象都会失效,怎么办,需要把cache m从cache中移除,这时候cache是... 阅读全文

posted @ 2013-11-27 09:06 依蓝jslee 阅读(234) 评论(0) 推荐(0) 编辑

2013年11月26日

JDK1.0-缓冲流

摘要: IO流里面经常用到的就是装饰器模式,也就是常说的封装。装饰器模式就是在原有的基础上增加功能。 *java.io.BufferedInputStream与java.io.BufferedOutputStream可以为InputStream,OutputStream类增加缓冲区功能。构建BufferedInputStream实例时,需要给定一个InputStream类型的实例,实现BufferedInputStream时,实际上最后是实现InputStream实例。同样,构建BufferedOutputStream时,也需要给定一个OutputStream实例,实现BufferedOutpu... 阅读全文

posted @ 2013-11-26 14:17 依蓝jslee 阅读(271) 评论(0) 推荐(0) 编辑

2013年11月25日

笔试错误1

摘要: 参考题:http://www.cnblogs.com/v-July-v/archive/2011/10/17/3125425.html *私网IP地址:10.0.0.0- 10.255.255.255;172.16.0.0- 172.31.255.255;192.168.0.0-192.168.255.255。 *Hash处理冲突: 1.开放寻址法;Hi=(H(key) + di) MOD m,i=1,2,…,k(k127 -128->-1 *所谓守护线程,是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺... 阅读全文

posted @ 2013-11-25 21:02 依蓝jslee 阅读(202) 评论(0) 推荐(0) 编辑

JVM 垃圾收集(转)

摘要: 转自:深入理解JAVA虚拟机 一.哪些内存需要回收以及什么时候回收 1.引用计数 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。 但是,至少主流的Java虚拟机里面没有选用引用计数算法来管理内存,其中最主要的原因是它很难解决对象之间相互循环引用的问题。举个简单的例子,请看代码清单3-1中的testGC()方法:对象objA和objB都有字段instance,赋值令objA.instance = objB及objB.instance = objA,除此之外,这两个对象再无任何引用,实际上... 阅读全文

posted @ 2013-11-25 17:10 依蓝jslee 阅读(228) 评论(0) 推荐(0) 编辑

Trie树和后缀树(转,简化)

摘要: 作者:July、yansha。出处:http://blog.csdn.net/v_JULY_v。 1.Trie树 1)简述 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。 3个基本性质:根节点不包含字符,除根节点外每一个节点都只包含一个字符。从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。每个节点的所有子节点包含的字符都不相同。 假设有b,abc... 阅读全文

posted @ 2013-11-25 10:39 依蓝jslee 阅读(334) 评论(0) 推荐(0) 编辑

海量数据处理(转,简化)

摘要: 转自:http://www.cnblogs.com/v-July-v/archive/2012/03/22/2413055.html作者:July出处:结构之法算法之道blog何谓海量数据处理? 所谓海量数据处理,其实很简单,海量,海量,何谓海量,就是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装入内存。 那解决办法呢?针对时间,我们可以采用巧妙的算法搭配合适的数据结构,如Bloom filter/Hash/bit-map/堆/数据库或倒排索引/trie/(时间),针对空间,无非就一个办法:大而化小:分而治之/hash映射(空间),你不是说规模太大嘛,那. 阅读全文

posted @ 2013-11-25 09:42 依蓝jslee 阅读(331) 评论(0) 推荐(0) 编辑

2013年11月23日

Struts2 内核之我见(转) -(主要是拦截器链和过滤链介绍和源码及其设计模式)

摘要: 转自:http://www.ibm.com/developerworks/cn/java/j-lo-struct2/index.html工作流程的官方描述我们从看官方的流程图开始。当本篇文章结束的时候,我们会再一遍来看它。图 2. 官方工作流程图初始的请求通过一条标准的过滤器链,到达 servlet 容器 ( 比如 tomcat 容器,WebSphere 容器 )。过滤器链包括可选的 ActionContextCleanUp 过滤器,用于系统整合技术,如 SiteMesh 插件。接着调用 FilterDispatcher,FilterDispatcher 查找 ActionMapper,以确定 阅读全文

posted @ 2013-11-23 22:34 依蓝jslee 阅读(458) 评论(0) 推荐(0) 编辑

导航