搜索到与相关的文章
编程技术

【查找结构 2】二叉查找树 [BST]

当所有的静态查找结构添加和删除一个数据的时候,整个结构都需要重建。这对于常常需要在查找过程中动态改变数据而言,是灾难性的。因此人们就必须去寻找高效的动态查找结构,我们在这讨论一个非常常用的动态查找树——二叉查找树。二叉查找树的特点下面的图就是两棵二叉查找树,我们可以总结一下他的特点:(1)若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值(2)若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值(3)它的左、右子树也分别为二叉查找树我们中

系统 2019-08-29 21:59:55 1724

编程技术

【串和序列处理 4】Suffix Trie 子串匹配结构

SuffixTrie:又称后缀Trie或后缀树。它与Trie树的最大不同在于,后缀Trie的字符串集合是由指定字符串的后缀子串构成的。比如、完整字符串"minimize"的后缀子串组成的集合S分别如下:s1=minimizes2=inimizes3=nimizes4=imizes5=mizes6=izes7=zes8=e然后把这些子串的公共前缀作为内部结点构成一棵"minimize"的后缀树,如图所示,其中上图是Trie树的字符表示,下图是压缩表示(详细见

系统 2019-08-29 21:59:51 1724

编程技术

【Lucene3.0 初窥】索引创建(3):DocumentWrite

上接《索引创建(2):DocumentWriter处理流程一》1.3.2第二车间——DocInverterPerFieldDocInverterPerField负责对DocFieldProcessorPerThread对象的Fieldable[]数组的内容建立倒排索引,也就是处理同名字的所有Field。但实际上这个类主要解决的是前期工作,比如分词,统计位置信息等。倒排索引结构的核心的工作由TermsHashPerField和FreqProxTermsWri

系统 2019-08-29 21:59:47 1724

编程技术

【排序结构6】 桶排序

从《基于比较的排序结构总结》中我们知道:全依赖“比较”操作的排序算法时间复杂度的一个下界O(N*logN)。但确实存在更快的算法。这些算法并不是不用“比较”操作,也不是想办法将比较操作的次数减少到logN。而是利用对待排数据的某些限定性假设,来避免绝大多数的“比较”操作。桶排序就是这样的原理。桶排序的基本思想假设有一组长度为N的待排关键字序列K[1....n]。首先将这个序列划分成M个的子区间(桶)。然后基于某种映射函数,将待排序列的关键字k映射到第i个桶

系统 2019-08-29 21:59:41 1724

编程技术

【文本分类】文本表示 --- VSM

要使得计算机能高效的处理真实文本,就必须找到一种理想的形式化表示方法,这种表示一方面能真实的反映文档内容(主题、领域或结构等),另一方面也要有对不同文档的区分能力。目前文本表示通常采用向量空间模型(vectorspacemodel,VSM)。VSM是20世纪60年代末期由G.Salton等人提出的,是当前自然语言处理中常用的主流模型。下面首先给出VSM设计的基本概念:(1)文档(document):通常是文章中具有一定规模的字符串。文档通常我们也叫文本。(

系统 2019-08-29 21:59:30 1724

编程技术

如何在spring框架中解决多数据源的问题

在我们的项目中遇到这样一个问题:我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。我们以往在spring和hibernate框架中总是配置一个数据源,因而sessionFactory的dataSource属性总是指向这个数据源并且恒定不变,所有DAO在使用sessionFactory的时候都是通过这个数据源访问数据库。但是现在,由于项目的需要,我们的DAO在访问sessionFactory的时候都不得不在多个数据源中不断

系统 2019-08-29 21:58:55 1724

编程技术

一堂如何提高代码质量的培训课 之 领域驱动设计

终于到了该说说领域驱动设计的时候了。我们在这场关于代码质量的讨论中,从代码可读性开始,讨论了代码复用性、设计模式,然后探讨了职责驱动设计。代码可读性是对代码质量最基本的要求,可惜我们仍有做得不够的(即使那些开发程序很多年的老程序员)。代码复用是提高代码质量的最初级阶段,但是在一个多人开发的项目团队中,围绕代码复用值得讨论的问题依然非常多,它依然是一个非常复杂的问题,甚至有时它不再仅仅是一个技术问题,而是一个管理问题。唉,提高代码质量的道理漫漫兮同志们要上下

系统 2019-08-29 21:58:55 1724

编程技术

样例UAR报告之一(Label带注释)

ExampleUAR:Aspect1—DateLabelisGood,ItSpeakstheUsers'LanguageOneaspectofthisinterfaceisthatitpresentstheday'sdateinstraightforwardlanguagethatisfamiliartousers.We'llwriteaUARtodocumentthisgoodaspectoftheinterfaceandusethisfirstexam

系统 2019-08-29 21:57:59 1724

编程技术

Hibernate关联学习之---多对多关联

有两个实Student和Course,他们之间的关系是多对多,在数据库上,为了满足3NF,会建立一个中间表Stu_Course来维护Student和Course之间的关系,在Hibernate中,则使用双向多对多来体现这种结构数据库脚本createtablestu(idvarchar(32)primarykey,namevarchar(32),cardidvarchar(32),ageint);createtablecourse(idvarchar(32)

系统 2019-08-12 09:30:38 1724

编程技术

Sapphire Cache 1.1.7(附bata版本)

SapphireCacheFrameworkAPISapphire是一个高并发、高缓存吞吐性、高性能的Java分布式内存对象缓存系统,其具有简单易学、方便实用等特点。它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据源中的数据临时存储于内存中,然后从内存中读取,从而大大提高读取速度。Sapphire目前最新版本为1.1.7-beta,主要特性包含:1.敏捷快速;2.体系结构中立、跨平台支持;3.多种缓存管理容器实现

系统 2019-08-12 09:30:36 1724