还没有来得及看,但搜索引擎的书不是很好找,先放上,希望对大家能有用
- 19:42
- 浏览 (225)
- 评论 (0)
- 分类: Search Engine
动态规划其实质上是通过开辟记录表,记录已求解过的结果,当再次需要求解的时候,可以直接到
那个记录表中去查找,从而避免重复计算子问题来达到降低时间复杂度的效果。实际上是一个空间
换时间的算法。动态规划,通常可以把指数级的复杂度降低到多项式级别。
一般算法书都会讲能不能用动态规划来求解问题,通常是判断有没有最有解结构,通常是通过“剪
切技术”来判断:即证明问题的一个最优解中,使用的子问题的解本身也必须是最优的。通常是假
设一个子问题不是最优的,那么找到一个最优的子问题来替换这个子 ...
问题描述:
LITTLE SHOP OF FLOWERS
Description
You want to arrange the window of your flower shop in a most pleasant way. You have F bunches of flowers, each being of a different kind, and at least as many vases ordered in a row. The vases are glued onto the shelf and are numbered consecutively 1 thro ...
问题描述:
Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可滑行的滑坡为24-17-16-1。当然 ...
在Java中,循环调用repaint()来显示动画效果,是个很自然的方法,
然而这是不可行的。其实Java有一个GUI (AWT) Thread来负责GUI
事件的分发,这个线程接受输入事件,放入事件队列,从该队列
中拿出一个事件分发出去。而这个线程事实上与GUI component
线程[一般是你应用程序的主线程]是绑定的。也就是说如果当前
的线程休眠,事件分发的线程同样会休眠。试想如果如果不这么
做,事件被分发,而当前线程正在休眠,事件就得不到响应,那么
这个事件就会丢失。
下面看看昨天遇到的一个问题:
昨天gyk同学问我一个动画不能显示,而是立即出来最终的画面,
他就使用循环调用repa ...
分享一个Nutch入门学习的资料,感觉写的还不错.
- 20:49
- 浏览 (294)
- 评论 (0)
- 分类: Search Engine
今天来看看Nutch如何Parse网页的:
Nutch使用了两种Html parser工具(NekoHTML和TagSoup)来实现html的提取,这两种工具是可通过配置来选择的。
当然你要自己实现Parser你还可以选择HTMLParser[基于visitor访问者模式同时也提供了Event driver的接口]来
提取网页。如果你用惯了XML一套处理方法,使用NekoHTML和TagSoup应该会比较顺手的。
我们来看看类public class HtmlParser implements Parser的实现:
首先为了更好的理解下面的代码先看看成员变量:
private stati ...
- 22:37
- 浏览 (396)
- 评论 (0)
- 分类: Search Engine
问题:
We all love recursion! Don't we?
Consider a three-parameter recursive function w(a, b, c):
if a <= 0 or b <= 0 or c <= 0, then w(a, b, c) returns:
1
if a > 20 or b > 20 or c > 20, then w(a, b, c) returns:
w(20, 20, 20)
if a < b and b < c, then w(a, b, c) ...
问题描述:
People in Silverland use square coins. Not only they have square shapes but also their values are square numbers. Coins with values of all square numbers up to 289 (=172), i.e., 1-credit coins, 4-credit coins, 9-credit coins, ..., and 289-credit coins, are available in Silverland.
There are ...
设计要素
nutch包含以下几个部分:
辅助类
Log:记载运行信息;
Time:记载时间信息;
协议类
目的:各种进程之间的通信协议
Client和M/R系统通信协议:完成客户端和M/R系统的通信;
Job和Task系统通信协议:由于一个任务要分布完成,所以需要任务和子任务之间的通信协议;
MapTask和ReduceTask通信协议:由于MAP和REDUCE是一个任务的顺序执行过程,所以需要两者之间的通信协议来对两个步骤进行协调,主要是文件输入输出协调;
进程通信协议:子进程和父进程通信协议;
任务管理
&nb ...
- 19:21
- 浏览 (249)
- 评论 (0)
- 分类: Search Engine
我现在看得源码主要是网页抓取部分,这部分相对比较容易。我首先定位所有与网页抓取部分,大体看了整个流程后,然后几乎看了所有函数的实现,当然也有许多不太明白的,相信随着逐渐对整个代码的熟悉,这些疑问会逐渐解决。现在有一些疑问就是Nutch为什么没有使用异步的Socket和缓冲DNS来提高抓取的效率(或许我还没有找到)。
Nutch的代码整体上写的还算通俗易懂。但Nutch大量使用了Google的Map-Reduce思想,来简化了很多功能模块的设计,这对从来没有接触到Map-Reduce的初学者带来了很陡峭的学习曲线。可以这样说,没有对Map-Reduce的思想的深刻理解,读懂Nutch源码是非常 ...
- 19:13
- 浏览 (245)
- 评论 (0)
- 分类: Search Engine
今天我们看看Nutch网页抓取,所用的几种数据结构:
主要涉及到了这几个类:FetchListEntry,Page,
首先我们看看FetchListEntry类:
public final class FetchListEntry implements Writable, Cloneable
实现了Writable, Cloneable接口,Nutch许多类实现了Writable, Cloneable。
自己负责自己的读写操作其实是个很合理的设计方法,分离出来反倒有很琐碎
的感觉。
看看里面的成员变量:
public static final String DIR_NAME = "fet ...
- 16:39
- 浏览 (370)
- 评论 (3)
- 分类: Search Engine
今天我们来看看Nutch的源代码中的protocol-http插件,是如何抓取和下载web页面的。protocol-http就两个类HttpRespose和Http类,其中HttpRespose主要是向web服务器发请求来获取响应,从而下载页面。Http类则非常简单,其实可以说是HttpResponse的一个Facade,设置配置信息,然后创建HttpRespose。用户似乎只需要和Http类打交道就行了(我也没看全,所以只是猜测)。
我们来看看HttpResponse类:
看这个类的源码需要从构造函数
public HttpResponse(HttpBase http, URL url, C ...
- 00:36
- 浏览 (424)
- 评论 (2)
- 分类: Search Engine
搜索引擎Nutch源代码研究之一 网页抓取:
Nutch的爬虫代码部分主要集中在:package org.apache.nutch.fetcher和插件protocol-file
Protocol-ftp protocol-http protocol-httpclient以及相应的Parser插件中:
下面我们先从org.apache.nutch.fetcher开始:
最主要的类是Fetcher类,我们从它入手一步步跟踪整个代码:
我们从run函数入手:
首先:
for (int i = 0; i < threadCount; i++) { // spawn thread ...
- 20:18
- 浏览 (575)
- 评论 (2)
- 分类: Search Engine
今天使用SVN去check out Nutch的源代码,以前没有用过SVN,遇到了一些问题:
开始,安装Eclipse的插件subclipse,update Eclipse后,安装subclipse1.2.x,装完之后怎么也不好使,
找不到透视图,Import也没有那个选项.就以为是版本不对,到官方网站上找,发现subclipse1.2.x是eclipse3.2
以上都可以的,版本没有什么问题.后来试着装subclipse1.0.x,装完之后居然好使了.
然后自己在另外的一个Eclipse3.3里面装subclipse1.2.x插件,装的时候发现有个X号,原来需要subcl ...
我们在使用Hibernate的lazy load来优化性能的时候,只要Session关闭后再试图访问未被载入的对象时,就会出现异常。通常使用在事务之内来访问数据是适合的,但是有时候我们需要强制载入这些数据,例如在Web视图中访问这些模型对象。
在业务层强制载入这些数据,通常不是很好的解决方案,因为不同的视图在使用业务方法的时候,需要的数据通常不一样,这样业务方法可能绑定到特定的控制器中。
在业务层上面增加一个Facade层来解决这个问题,同样也会增加一层不太必要的封装,增加了复杂性,POJO in Action一书中的例子就是这么设计的(POJO in Action感觉是本蛮不 ...
当时感觉没什么大不了的事,结果带来的却是痛苦不堪的后果。
这是我在公司实习期间的一段经历:
公司每个月经理都要和职员谈话,谈话内容主要自己的工作情况以及对公司的看法。
那次谈话,我到公司已经三个月了,
谈的第一件事是经理说我写的代码和别人的不一样:事情是这样的,由于当时那个项
目步骤特别固定,只要老手写一个功能的实现,其他人都可以照着这个流程去做。结
果是大家都是直接copy那一份老手写的样例,然后改改了之。其实重复的代码相当多,
我自己作了一个高层的抽象(使用模版方法和回调),避免了大量重复的代码。却被
认为和大家不统一而以后不好维护。而我当时反驳的是我们的代码重复的太多了,缺
少高层的抽象 ...
- 浏览: 51466 次
- 性别:

- 来自: 长春

- 详细资料
搜索本博客
我的相册
RSS Reader1
共 6 张
共 6 张
链接
最新评论
-
写了一个支持搜索并下载歌 ...
引用 为什么要配置成legal_music_link=http://202.10 ...
-- by fuliang -
使用Struts2+Hibernate+Sp ...
很好很强大
-- by andy54321 -
Java Persistence with Hi ...
昨天买的, 不错
-- by lklkdawei -
使用Struts2+Spring+Hiber ...
不过整个工程都没有一条注释啊。。。 这个比较郁闷,万一以后你写了个框架,那下面 ...
-- by yyphzc -
使用Struts2+Spring+Hiber ...
总体感觉还行,不过部分代码需要优化为好 1.DAO既然使用泛型,那就干脆点。想想 ...
-- by yeshucheng






评论排行榜