新手请教个关于一个程序的问题

大家好,我是一个java新手,以前也学过但是代码敲的少,现在需要编写一个类似于字典的程序,要求把一本书按照划段落和句子划分,并且查找单个的单词然后列出包含这个单词的所有句子,用什么算法效率会比较高.望各位指点.(另:本人现在在国外学习,作业的具体要求见附件,有兴趣的朋友可以看一看,首先在此先感谢大家的意见和建议.)

“单词 句子 段落划分”没问题。
如果不需要再用,不需要持久化,用hash table没问题。
“以单词为key, 然后后边链一个链表存储所有出现这个单词的句子”就是逆向索引嘛,也没问题。
范围么,不知道具体怎么要求的,如果范围的粒度够大,可以考虑的思路是分多个hash table,每个保存一个范围内的索引,需要的时候拼多个范围的结果。
如果要持久化,简单点可以用derby db来存,或者干脆序列化哈。

自己做可能比较麻烦,可以用现有的全文搜索引擎,lucene,sphinx什么的

不用什么全文检索,自己写个基于字典的分词算法就可以解决。英文单词间有空格,分词更容易。

搜一下lucene的基本数据组织方式的贴,自己同样实现个逆向索引。
分词估计可以用现成的,显然不是考这个。