自适应检索树与对GPERF的改进算法

来源 :福州大学 | 被引量 : 1次 | 上传用户:zhwenh_0421
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
“查找”在计算机的任何算法中几乎无处不在。据报道,计算机70%以上的时间在进行查找工作。因此节省查找的时间和空间成为了一个重要的研究课题。检索树(trie树)是支持较快查找算法的结构。传统的trie树是一种按字节进行检索的多叉树,具有比hash表更快的查找速度,主要应用于变长字符串的索引。其主要缺点是分支结点大,空间利用率低,因为传统的trie树的分支结点上的一个link指针仅可指向一个叶结点,通常情况下许多link指针为空。我们的实验表明其非空率只有1/40。对传统的hash算法,最坏情况下查找、插入、删除的时间复杂性都是O(n)。可扩充散列的查找在最坏情况下的时间复杂性为O(maxkeysize)(maxkeysize为关键字的最大长度,实际中多为常数)。但插入、删除的最坏时间复杂性都是O(n),并且空间复杂性随记录数的增加呈超线性增长,即空间利用率在记录数较大时是很低的。所谓“完美的”自适应hash算法,虽然查找的时间复杂性一般较小,但插入后解决冲突的最坏时间复杂性均在O(n~2)以上。本文主要做两方面的工作。第一,改进自适应hash算法gperf,使解决冲突的速度提高数百倍,并进一步降低查找的时间。第二,在进一步分析检索树,散列,和可扩充散列等几种算法的设计思想和优缺点的基础上,进行综合,提出了自适应检索树的算法。该算法所支持的插入、查找、删除在最坏情况下时间复杂性均为O(maxkeysize),空间复杂性为O(n)。 本文的创新之处主要在于: 1.在研究了传统的检索树的基础上,提出自适应检索树的数据结构,并给出其支持ADT字典的算法,在不增加算法的时间复杂性的前提下,大大改善传统检索树的空间复杂性,使空间复杂性系数由原来的40左右,降低到3以下。其中的自适应性一方面体现在分支结点的规模按需的可伸缩,另一方面体现在分支结点的每一个指针(link)可指向一个字典元素的链表,而且链表的长度等于该分支结点所在的层次加1。这两方面的自适应性大大降低了全树空link的比例,从根本上降低了检索树的空间复杂度,使之作为字典的存储结构更具优势。 2.针对D.C.Schmidt的GPERF(完美的Hash函数生成器)中存在的效率问题,采取包括充分挖掘、利用字典元素关键字的信息,减少冲突,避免无效计算,限制单桶最大冲突数,将解决冲突的工作分摊给查找操作,分级散列等措施,提出对GPERF的改进算法,并被实验证明改进的效果显著,使解决冲突的速度提高数百倍,并进一步降低查找的时间。
其他文献
遗传异质性(genetic heterogeneity)是生物信息学研究领域中的重要研究方向之一,也是遗传学中普遍存在的现象.因此,国内外很多专家对遗传异质性进行了研究,但是传统的遗传异
电子邮件服务是Internet网络应用中除了http服务之外应用得最广泛的服务.随着Internet的广泛应用,电子邮件也成为人们日常交流中不可或缺的手段.近年来垃圾邮件在互联网上泛
  拒绝服务(DoS)攻击日益严重地威胁着Internet安全,而分布式拒绝服务(DDoS)攻击破坏性更大,更难防范。本文介绍了拒绝服务攻击的基本概念和发展情况,通过几种常见攻击工具的
英文识别OCR关键技术包括图像的二值化、文本分割、倾斜校正、单词字符分割、字符特征提取、字符识别以及后处理.相关工作还有字符模板的建立,后处理词典的建立等等.目前英文
随着多媒体技术的广泛应用,需要进行加密、认证和版权保护的声像数据也越来越多。保护数字产品的知识产权和阻止盗版已经成为数字产品和网络应用面临的严峻问题。数字化的声像
词义消歧是自然语言处理中的一个核心问题.现阶段,很多词义消歧的研究大多采用几个有代表性的歧义词作为研究与测试的对象,在实际应用中有一定的局限性,所以该文希望能够针对
由于网页数量的快速增长,以及网页内容日新月异的变化,搜索引擎不可能搜索所有的网页,也不能对所有爬行下来的网页进行及时地更新.如何在有限资源下搜索最有价值的网页,对网
在三维地震解释中,可视化技术及追踪技术具有十分重要的地位。三维可视化的根本目的是要用真实的图形图像来描述观测数据、显示计算过程和分析结果,从而揭示大量数据中包含的信
学位
随着逻辑程序研究的不断深入,逻辑程序的语义和更新已经成为研究的热门,各种语义模型和更新方法层出不穷,尤其是更新方法中优先级别的研究.该文通过对现有稳定模型语义介绍,
随着Internet技术的成熟和蔓延,网络计算作为一种新的计算模式出现,其目的是把网络连接起来的各种自治资源和系统组合起来,以实现资源的广泛共享、协同工作和联合计算,为用户