比特序列合并排序装置、方法以及程序制造方法及图纸

技术编号:5451240 阅读:229 留言:0更新日期:2012-04-11 18:40
为了实现应用配对节点树的高速合并排序方法,从存储有由排序完毕的比特序列构成的关键字的多个排序完毕关键字存储区域中,分别取出最小关键字或最大关键字,并且附加对作为取出源的排序完毕关键字存储区域进行识别的处理源识别符,生成合并用配对节点树,反复执行配对节点树的基于最小值检索或最大值检索的关键字的向合并完毕关键字存储区域的写出和删除处理、以及从排序完毕关键字存储区域中取出关键字后的插入处理,由此实现合并排序。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及比特序列合并排序装置和方法、以及使计算机执行该方法的程序。
技术介绍
近年,社会的信息化不断发展,大规模的数据库在各处被利用起来。为了从这种大 规模的数据库中检索记录,通常是将与存储有各记录的地址相对应的记录内的项目作为索 引关键字来进行检索,检索出期望的记录。并且,全文检索中的字符串也可视为文档的索引 关键字。而且,由于这些索引关键字利用比特序列来表达,因而数据库的检索可归结于比 特序列的检索。另一方面,作为与数据库相关联的处理,如下述专利文献1以及下记专利文献2所 述,进行数据库中的记录合并排序。该合并排序也归结于比特序列的合并排序。基本的合并排序方法是将数据分割成2个对后进行排序,组合排序后的结果。艮口, 分成前级处理和后级处理,该前级处理一边反复对排序对象数据的分割一边进行排序,来 获得多个排序完毕的数据,该后级处理反复对排序完毕数据的合并,来进行排序对象数据 整体的排序。在专利文献2中,关于合并排序的后级处理公开了图IA所示的处理。如图IA所示,例示了在区块1 区块N中存储有排序完毕的数据,区块1的最小 值是13,区块2的最小值是8,其次大的数据是22。同样例示了区块3的最小值是53,区块 4的最小值是24,区块N的最小值是9。合并排序的后级处理是以上述区块1 区块N的存在为前提的,首先,生成基于各 区块的最小值的数据列。在图IA的例示中生成了基于区块1、区块2、区块3、区块4…区块 N的最小值的数据列<13、8、53、24···9>。接着对该数据列进行排序,生成排序完毕的数据列 <8、9、13、15…100&gt;,输出最小值8。然后,从存储有该最小值8的区块2中取出下一数据22, 求出将数据22插入到排序完毕的数据列的插入位置,然后插入数据22,输出排序完毕的数 据列的下一最小值,通过反复上述步骤,来进行区块1 区块N所存储的数据的合并,完成 数据整体的排序。如上所述,在合并排序的后级处理中,需要求出将下一数据插入到排序完毕数据 列的插入位置。为了求出该插入位置,将下一数据作为关键字与排序完毕数据列所包含的 数据进行比较处理,伴随该比较处理的插入处理归结于将下一数据作为检索关键字的排序 完毕数据列的检索处理、即比特序列的检索处理。关于比特序列的检索处理方法,已知有各种方法。在这些方法之中,为了高速地进 行比特序列的检索,一直以来对存储比特序列的数据结构进行了各种研究。作为这种研究 之一,公知的是Patricia树这样的树结构。图IB示出用于上述现有检索处理的Patricia树的一例。Patricia树的节点构成 为包含索引关键字、检索关键字的检查比特位置、左右链接指针。虽未明示,但显然在节点中包含用于访问与索引关键字对应的记录的信息。在图IB的例子中,保持索引关键字“100010”的节点1750a是根节点,其检查比特 位置是0。节点1750a的左链接1740a与节点1750b连接,右链接1741a与节点1750f连接。节点1750b保持的索引关键字是“010011”,检查比特位置1730b是1。节点1750b 的左链接1740b与节点1750c连接,右链接1741b与节点1750d连接。节点1750c保持的 索引关键字是“000111”,检查比特位置是3。节点1750d保持的索引关键字是“011010”,检 查比特位置是2。从节点1750c开始用实线连接的部分表示节点1750c的左右链接指针,未进行虚 线连接的左指针1740c表示该栏是空栏。进行了虚线连接的右指针1741c的虚线的链接目 的地表示指针所指向的地址,在这里表示右指针指向节点1750c。节点1750d的右指针1741d指向节点1750d自身,左链接1740d与节点1750e连 接。节点1750e保持的索引关键字是“010010”,检查比特位置是5。节点1750e的左指针 1740e指向节点1750b,右指针1741e指向节点1750e。并且,节点1750f保持的索引关键字是“101011”,检查比特位置1730f是2。节点 1750f的左链接1740f与节点1750g连接,右链接174If与节点1750h连接。节点1750g保持的索引关键字是“100011”,检查比特位置1730g是5。节点1750g 的左指针1740g指向节点1750a,右指针1741g指向节点1750g。节点1750h保持的索引关键字是“101100”,检查比特位置1730h是3。节点1750h 的左指针1740h指向节点1750f,右指针1741h指向节点1750h。在图IB的例子中,形成这样的结构随着从根节点1750a开始对树进行向下遍历, 各节点的检查比特位置增大。当使用某检索关键字进行检索时,从根节点开始依次检查由各节点所保持的检索 关键字的检查比特位置,判定检查比特位置的比特值是1还是0,是1时搜索右链接,是0时 搜索左链接。然后,当链接目的地节点的检查比特位置不大于链接源节点的检查比特位置 时,即,链接目的地不是下方而是回到上方时(将图IB中虚线所示的该后退的链接称为反 向链接),对链接目的地节点的索引关键字与检索关键字进行比较。能够保证在比较结果相 同时检索成功,在比较结果不相同时检索失败。如上所述,在使用Patricia树的检索处理中,有以下等优点只通过必要比特的 检查即可进行检索,以及关键字全体的比较只需一次,然而具有以下等缺点由于必定有从 各节点起的2个链接而使存储容量增大,由于反向链接的存在而使判定处理复杂化,由于 从反向链接返回后才与索引关键字进行比较而造成的检索处理延迟以及追加删除等数据 维护困难。作为解决Patricia树的这些缺点的技术,例如有下述专利文献1所公开的技术。 在下述专利文献3所记载的Patricia树中,通过在连续的区域中存储下位的左右节点来削 减指针的存储容量,并通过在各节点中设置表示下一链接是否是反向链接的比特来减轻反 向链接的判定处理。然而,在下述专利文献3所公开的技术中,由于1个节点必定占据索引关键字区域 和指针区域,以将下位左右节点存储在连续区域的方式采用1个指针,因而对于例如图IB所示的作为Patricia树的最下段部分的左指针1740c、右指针1741h等部分,也需要分配与 节点相同容量的存储区域,存储容量的削减效果不怎么好。并且,也没有改善反向链接引起 的检索处理的延迟问题,很难进行追加删除等处理。因此,当要执行超大量数据的排序合并时,会长时间占用大量的计算机资源,成本非常高。专利文献1 日本特开2000-010761号公报专利文献2 日本特开2006-163565号公报专利文献3 日本特开2001-357070号公报因此,本专利技术要解决的课题是应用高速的比特序列检索方法来提供高效的排序合 并方法。作为解决上述现有检索方法中的问题点的方案,本申请人在日本特愿 2006-187827中提出了使用配对节点树的比特序列检索,该配对节点树是由根节点、和在相 邻的存储区域中配置的分支节点和叶节点或者分支节点之间或叶节点之间的节点对构成 的、用于比特序列检索的树,根节点是表示树的起点的节点,在该树的节点为一个时,根节 点为叶节点,在树的节点为两个以上时,根节点本文档来自技高网...

【技术保护点】
一种比特序列合并排序方法,该方法从存储有由以升序或降序方式排序完毕的比特序列构成的关键字的多个排序完毕关键字存储区域中,分别取出作为最小值或最大值的关键字来生成合并用关键字序列,从该合并用关键字序列取出该合并用关键字序列中作为最小值或最大值的关键字,存储到合并完毕关键字存储区域,从已取出存储到该合并完毕关键字存储区域的关键字的所述排序完毕关键字存储区域中,取出作为下一最小值或下一最大值的下一关键字,插入到所述合并用关键字序列,反复从该合并用关键字序列取出该合并用关键字序列中作、所述下一关键字取出步骤以及所述下一关键字插入步骤,直到从所述多个排序完毕关键字存储区域中取出所有关键字而存储到所述合并完毕关键字存储区域,由此,以升序或降序方式将所述多个排序完毕关键字存储区域所存储的关键字存储在所述合并完毕关键字存储区域中。为最小值或最大值的关键字而存储到所述合并完毕关键字存储区域的处理,直到从所述多个排序完毕关键字存储区域取出所有关键字而存储到所述合并完毕关键字存储区域为止,由此以升序或降序方式对所述多个排序完毕关键字存储区域所存储的所有关键字进行排序,其中,将所述合并用关键字序列的关键字保持为配对节点树上的索引关键字,该配对节点树是用于比特序列检索的树,由根节点、以及配置在相邻存储区域中的分支节点和叶节点、或者分支节点之间或叶节点之间的节点对构成,所述根节点是表示树的起点的节点,当该树的节点为一个时所述根节点是所述叶节点,当树的节点为两个以上时所述根节点是所述分支节点,所述分支节点包含进行比特序列检索的检索关键字的鉴别比特位置、和表示作为链接目的地节点对中的一个节点的代表节点的位置的位置信息,所述叶节点包含由检索对象比特序列构成的索引关键字,以所述树的任意节点作为检索开始节点,依次反复下述动作:在所述分支节点中根据该分支节点中包含的鉴别比特位置的检索关键字的比特值,来链接到链接目的地节点对的代表节点或配置在与其相邻的存储区域中的节点,直至到达所述叶节点为止,由此将存储在所述叶节点中的索引关键字作为检索结果关键字,该检索结果关键字是所述树的以所述检索开始节点为根节点的任意部分树的、基于所述检索关键字的检索结果,并且所述叶节点包含对存储有所述关键字的所述排序完毕关键字存储区域进行识别的处理源识别符,该比特序列合并排序方法具有以下步骤:合并树生成步骤,从存储有所述排序完毕关键字的多个排序完毕关键字存储区域中分别取出最小关键...

【技术特征摘要】
【国外来华专利技术】JP 2007-12-5 2007-314782一种比特序列合并排序方法,该方法从存储有由以升序或降序方式排序完毕的比特序列构成的关键字的多个排序完毕关键字存储区域中,分别取出作为最小值或最大值的关键字来生成合并用关键字序列,从该合并用关键字序列取出该合并用关键字序列中作为最小值或最大值的关键字,存储到合并完毕关键字存储区域,从已取出存储到该合并完毕关键字存储区域的关键字的所述排序完毕关键字存储区域中,取出作为下一最小值或下一最大值的下一关键字,插入到所述合并用关键字序列,反复从该合并用关键字序列取出该合并用关键字序列中作为最小值或最大值的关键字而存储到所述合并完毕关键字存储区域的处理,直到从所述多个排序完毕关键字存储区域取出所有关键字而存储到所述合并完毕关键字存储区域为止,由此以升序或降序方式对所述多个排序完毕关键字存储区域所存储的所有关键字进行排序,其中,将所述合并用关键字序列的关键字保持为配对节点树上的索引关键字,该配对节点树是用于比特序列检索的树,由根节点、以及配置在相邻存储区域中的分支节点和叶节点、或者分支节点之间或叶节点之间的节点对构成,所述根节点是表示树的起点的节点,当该树的节点为一个时所述根节点是所述叶节点,当树的节点为两个以上时所述根节点是所述分支节点,所述分支节点包含进行比特序列检索的检索关键字的鉴别比特位置、和表示作为链接目的地节点对中的一个节点的代表节点的位置的位置信息,所述叶节点包含由检索对象比特序列构成的索引关键字,以所述树的任意节点作为检索开始节点,依次反复下述动作在所述分支节点中根据该分支节点中包含的鉴别比特位置的检索关键字的比特值,来链接到链接目的地节点对的代表节点或配置在与其相邻的存储区域中的节点,直至到达所述叶节点为止,由此将存储在所述叶节点中的索引关键字作为检索结果关键字,该检索结果关键字是所述树的以所述检索开始节点为根节点的任意部分树的、基于所述检索关键字的检索结果,并且所述叶节点包含对存储有所述关键字的所述排序完毕关键字存储区域进行识别的处理源识别符,该比特序列合并排序方法具有以下步骤合并树生成步骤,从存储有所述排序完毕关键字的多个排序完毕关键字存储区域中分别取出最小关键字或最大关键字,生成所述配对节点树;合并步骤,使用该配对节点树进行最小值检索或最大值检索,取得作为检索结果的最小值的最小关键字、或作为检索结果的最大值的最大关键字以及所述处理源识别符,将该最小关键字或最大关键字存储到所述合并完毕关键字存储区域;关键字删除步骤,从所述配对节点树中删除该最小关键字或最大关键字;下一关键字取出步骤,从在所述合并步骤中取得的处理源识别符所指示的所述排序完毕关键字存储区域中,取出作为所述最小关键字的下一最小值的下一关键字、或作为所述最大关键字的下一最大值的下一关键字;以及下一关键字插入步骤,将该取出的下一关键字插入到所述配对节点树,反复所述合并步骤、所述关键字删除步骤、所述下一关键字取出步骤以及所述下一关键字插入步骤,直到从所述多个排序完毕关键字存储区域中取出所有关键字而存储到所述合并完毕关键字存储区域,由此,以升序或降序方式将所述多个排序完毕关键字存储区域所存储的关键字存储在所述合并完毕关键字存储区域中。2.根据权利要求1所述的比特序列合并排序方法,其中,所述下一关键字取出步骤包含下一关键字取出判定步骤,该下一关键字取出判定步骤 判定是否能从所述取得的处理源识别符所指示的所述排序完毕关键字存储区域中取出所 述下一关键字,当在该下一关键字取出判定步骤中判定为不能取出所述下一关键字时,跳过所述下一 关键字插入步骤。3.根据权利要求2所述的比特序列合并排序方法,其中,所述关键字删除步骤包含根节点登记判定步骤,该根节点登记判定步骤在从所述配对 节点树中删除了所述最小关键字或最大关键字之后,判定是否登记了所述配对节点树的所 述根节点,该比特序列合并排序方法还具有最终合并步骤,该最终合并步骤在所述根节点登记判 定步骤中判定为没有登记所述根节点时,从存在未取出关键字的所述排序完毕关键字存储 区域中,依次取出关键字直到最大或最小关键字,存储在所述合并完毕关键字存储区域中。4.根据权利要求1所述的比特序列合并排序方法,其中,将所述关键字删除步骤、所述下一关键字取出步骤和所述下一关键字插入步骤的执行 顺序设为所述下一关键字取出步骤、所述下一关键字插入步骤和所述关键字删除步骤的执 行顺序。5.根据权利要求4所述的比特序列合并排序方法,其中,将包含所述删除的最小值或最大值的节点的紧接上位节点设为所述合并步骤中的最 小值检索或最大值检索的检索开始节点。6.根据权利要求5所述的比特序列合并排序方法,其中,该比特序列合并排序方法还具有以下步骤插入节点检索步骤,判定包含所述插入的下一关键字作为索引关键字的节点的紧接上 位节点的插入节点,是否存在于所述最小值检索或最大值检索中从根节点到包含该最小值 或最大值的叶节点的检索路径中;以及再检索步骤,当在所述插入节点检索步骤中判定为该插入节点存在于所述检索路径 时,将根节点作为检索开始节点,再次进行最小值检索或最大值检索。7.根据权利要求1所述的比特序列合并排序方法,其中,该比特序列合并排序方法还具有中间检索步骤,在所述关键字删除步骤之后,将包含在该关键字删除步骤中删除的最 小值或最大值的节点的紧接上位节点作为检索开始节点,进行最小值检索或最大值检索; 以及下一关键字大小判定步骤,在所述下一关键字取出步骤之后,判定在该下一关键字取 出步骤中取出的所述下一关键字是否小于在所述中间检索步骤中求出的最小值、或大于在 所述中间检索步骤中求出的最大值,在所述下一关键字小于所述最小值或大于所述最大值时,将该下一关键字存储在所述 合并完毕关键字存储区域中,再次执行所述下一关键字取出步骤,在所述下一关键字大于所述最小值或小于所述最大值时,执行所述下一关键字插入步马聚ο8.根据权利要求7所述的比特序列合并排序方法,其中,所述下一关键字取出步骤包含下一关键字取出判定步骤,该下一关键字取出判定步骤 判定是否能从所述取得的处理源识别符所指示的所述排序完毕关键字存储区域中取出所 述下一关键字,在该下一关键字取出判定步骤中判定为不能取出所述下一关键字时,跳过所述下一关 键字插入步骤和将根节点作为检索开始节点进行最小值检索或最大值...

【专利技术属性】
技术研发人员:新庄敏男国分光裕
申请(专利权)人:新叶股份有限公司
类型:发明
国别省市:JP[日本]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利