CN111488496B - 一种基于滑动窗口的Tango树构建方法及系统 - Google Patents
一种基于滑动窗口的Tango树构建方法及系统 Download PDFInfo
- Publication number
- CN111488496B CN111488496B CN202010361443.9A CN202010361443A CN111488496B CN 111488496 B CN111488496 B CN 111488496B CN 202010361443 A CN202010361443 A CN 202010361443A CN 111488496 B CN111488496 B CN 111488496B
- Authority
- CN
- China
- Prior art keywords
- pointer
- window
- value
- ordered
- corresponding branch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开一种基于滑动窗口的Tango树构建方法及系统,属于Tango树构建技术领域,解决了现有技术中新建规模较大的Tango树时耗时较长的问题。一种基于滑动窗口的Tango树构建方法,包括以下步骤:创建排序窗口,将待排序数据连成队列;通过滑动排序窗口读入待排序数据,对待排序数据进行排序,得到有序数据,复制有序数据至插入窗口;新建指针,读取当前节点,若无节点值,则移动队列头部的指针,执行插入操作,若有节点值,则根据所述节点值,确定新的头指针和尾指针,并确定是否进入对应分支,或进行移动指针操作,并确定是否进入对应分支;进入对应分支后,针对对应分支,重复上一步骤,直至Tango树构建结束。提高了新建规模较大的Tango树的速度。
Description
技术领域
本发明涉及Tango树构建技术领域,尤其是涉及一种基于滑动窗口的Tango树构建方法及系统。
背景技术
现在动态数据结构的研究变得越来越重要,主要有两方面的原因,一是随着大数据和云计算的发展,信息存储系统中的数据规模越来越大,这些数据往往随着时间不断改变;另一方面,基于目前的发展状况,批量更新数据的需求正日益占据更为重要的地位。不重复的插入建立需要大量的查询操作,在现有的Tango树中,逐个插入的策略已经越来越无法适应大规模插入数据的需求,原因在于,逐个插入,访问新节点频繁,根节点被读取的次数远远大于叶子结点,导致新建规模较大的Tango树时耗时较长。
发明内容
本发明的目的在于至少克服上述一种技术不足,提出一种基于滑动窗口的Tango树构建方法。
一方面,本发明提供了一种基于滑动窗口的Tango树构建方法,包括以下步骤:
步骤S1、创建排序窗口,将待排序数据连成队列,使所述待排序数据适应排序窗口滑动;
步骤S2、通过滑动排序窗口读入待排序数据,对待排序数据进行排序,得到有序数据,新建插入窗口,复制有序数据至插入窗口;
步骤S3、新建指向插入窗口中有序数据队列对象的指针,读取当前节点,判断有无节点值,若无节点值,则移动指向插入窗口中有序数据队列头部的指针,并从插入窗口中有序数据队列头部依次执行插入操作,若有节点值,则根据所述节点值,确定新的头指针和尾指针,并确定是否进入对应分支,或进行移动指针操作,并确定是否进入对应分支;
步骤S4、进入对应分支后,针对对应分支,重复执行步骤S3,直至Tango树构建结束。
进一步地,所述基于滑动窗口的Tango树构建方法,还包括,在将有序数据复制至插入窗口后,对排序窗口执行清空操作。
进一步地,根据所述节点值,确定新的头指针和尾指针,并确定是否进入对应分支,或进行移动指针操作,并确定是否进入对应分支,具体包括:
若节点值大于插入窗口的最大值,或节点值小于插入窗口的最小值,则确定新的头指针和尾指针,并截取插入窗口,进入对应分支;否则,向数据队列中部移动头指针或尾指针,直至插入窗口两端的最值与节点值不再相同,并进行未赋值指针的移动操作,进入对应分支。
进一步地,所述若节点值大于插入窗口的最大值,或节点值小于插入窗口的最小值,则确定新的头指针和尾指针,并截取插入窗口,进入对应分支,具体包括:
若节点值大于插入窗口的最大值,尾指针不变,将头指针C的值赋值给未赋值指针B,以赋值后的指针B作为新的头指针,截取插入窗口,若指向有序数据队列对象的指针有效且队列不为空,进入对应分支,否则不进入;
若节点值小于插入窗口的最小值,头指针不变,将尾指针的值赋值给未赋值指针A,以赋值后的指针A作为新的头指针,截取插入窗口,若指向有序数据队列对象的指针有效且队列不为空,进入对应分支,否则不进入。
进一步地,所述进行未赋值指针的移动操作,确定是否进入对应分支,具体包括;
使未赋值指针A指向有序数据队列头部,向有序数据队列尾部移动指针A,直至指针A所示值不大于当前节点,使未赋值指针B指向有序数据队列尾部,向有序数据队列头部移动指针B,直至指针B所示值不小于当前节点,头指针不变,以指针A作为新的尾指针,截取插入窗口,若指向有序数据队列对象的指针有效且数据队列不为空,进入对应分支,否则不进入。
另一方面,本发明提供了一种基于滑动窗口的Tango树构建系统,包括待排序数据操作模块、有序数据形成及复制模块、插入操作及分支进入模块和分支重复生成模块;
所述待排序数据操作模块,用于创建排序窗口,将待排序数据连成队列,使所述待排序数据适应排序窗口滑动;
所述有序数据形成及复制模块,用于通过滑动排序窗口读入待排序数据,对待排序数据进行排序,得到有序数据,新建插入窗口,复制有序数据至插入窗口;
所述插入操作及分支进入模块,用于新建指向插入窗口中有序数据队列对象的指针,读取当前节点,判断有无节点值,若无节点值,则移动指向插入窗口中有序数据队列头部的指针,并从插入窗口中有序数据队列头部依次执行插入操作,若有节点值,则根据所述节点值,确定新的头指针和尾指针,并确定是否进入对应分支,或进行移动指针操作,并确定是否进入对应分支;
所述分支重复生成模块,用于在进入对应分支后,针对对应分支,使所述插入操作及分支进入模块重复执行其功能,直至Tango树构建结束。
进一步地,所述基于滑动窗口的Tango树构建系统,还包括清空操作模块,所述清空操作模块,用于在将有序数据复制至插入窗口后,对排序窗口执行清空操作。
进一步地,插入操作及分支进入模块,根据所述节点值,确定新的头指针和尾指针,并确定是否进入对应分支,或进行移动指针操作,并确定是否进入对应分支,具体包括:
在节点值大于插入窗口的最大值时,或在节点值小于插入窗口的最小值时,确定新的头指针和尾指针,并截取插入窗口,进入对应分支;否则,向数据队列中部移动头指针或尾指针,直至插入窗口两端的最值与节点值不再相同,并进行未赋值指针的移动操作,进入对应分支。
进一步地,插入操作及分支进入模块在节点值大于插入窗口的最大值时,或在节点值小于插入窗口的最小值时,确定新的头指针和尾指针,并截取插入窗口,进入对应分支,具体包括:
在节点值大于插入窗口的最大值时,尾指针不变,将头指针C的值赋值给未赋值指针B,以赋值后的指针B作为新的头指针,截取插入窗口,若指向有序数据队列对象的指针有效且队列不为空,进入对应分支,否则不进入;
在节点值小于插入窗口的最小值时,头指针不变,将尾指针的值赋值给未赋值指针A,以赋值后的指针A作为新的头指针,截取插入窗口,若指向有序数据队列对象的指针有效且队列不为空,进入对应分支,否则不进入。
进一步地,插入操作及分支进入模块进行未赋值指针的移动操作,进入对应分支,具体包括,使未赋值指针A指向有序数据队列头部,向有序数据队列尾部移动指针A,直至指针A所示值不大于当前节点,使未赋值指针B指向有序数据队列尾部,向有序数据队列头部移动指针B,直至指针B所示值不小于当前节点,头指针不变,以指针A作为新的尾指针,截取插入窗口,若指向有序数据队列对象的指针有效且数据队列不为空,进入对应分支,否则不进入。
与现有技术相比,本发明的有益效果包括:通过创建排序窗口,将待排序数据连成队列,使所述待排序数据适应排序窗口滑动;通过滑动排序窗口读入待排序数据,对待排序数据进行排序,得到有序数据,新建插入窗口,复制有序数据至插入窗口;新建指向插入窗口中有序数据队列对象的指针,读取当前节点,判断有无节点值,若无节点值,则移动指向插入窗口中有序数据队列头部的指针,并从插入窗口中有序数据队列头部依次执行插入操作,若有节点值,则根据所述节点值,确定新的头指针和尾指针,并确定是否进入对应分支,或进行移动指针操作,并确定是否进入对应分支;进入对应分支后,针对对应分支,重复执行上一步骤,直至Tango树构建结束;提高了新建规模较大的Tango树的速度。
附图说明
图1是本发明实施例1所述的基于滑动窗口的Tango树构建方法流程示意图;
图2是本发明实施例1所述的步骤S1及步骤S2的流程示意图;
图3是本发明实施例1所述的步骤S3的流程示意图;
图4是本发明实施例1所述的滑动窗口在Tango树中的插入操作流程图;
图5是本发明实施例1所述的插入操作中切分窗口的细化流程图;
图6是本发明实施例1所述的创建优先路径的流程图;
图7是本发明实施例1所述的创建孩子节点的流程图;
图8是本发明实施例1所述的测试结果示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1
本发明实施例提供了一种基于滑动窗口的Tango树构建方法,其流程示意图,如图1所示,包括以下步骤:
步骤S1、创建排序窗口,将待排序数据连成队列,使所述待排序数据适应排序窗口滑动;
步骤S2、通过滑动排序窗口读入待排序数据,对待排序数据进行排序,得到有序数据,新建插入窗口,复制有序数据至插入窗口;
步骤S3、新建指向插入窗口中有序数据队列对象的指针,读取当前节点,判断有无节点值,若无节点值,则移动指向插入窗口中有序数据队列头部的指针,并从插入窗口中有序数据队列头部依次执行插入操作,若有节点值,则根据所述节点值,确定新的头指针和尾指针,并确定是否进入对应分支,或进行移动指针操作,并确定是否进入对应分支;
步骤S4、进入对应分支后,针对对应分支,重复执行步骤S3,直至Tango树构建结束。
具体实施时,创建指针指向插入窗口中有效数据队列的两端,以避免可能出现的窗口未填满现象;新建指向插入窗口中数据队列对象的指针A、B、C和D,其中A和B不赋值,C和D分别指向插入窗口中数据队列的头部和尾部,读取当前节点值;若无节点值,则移动指针C,从窗口中数据队列头部依次执行插入操作;
一个具体实施例中,步骤S1及步骤S2的流程示意图,如图2所示;步骤S3的流程示意图,如图3所示;
优选的,所述基于滑动窗口的Tango树构建方法,还包括,在将有序数据复制至插入窗口后,对排序窗口执行清空操作。
优选的,根据所述节点值,确定新的头指针和尾指针,并确定是否进入对应分支,或进行移动指针操作,并确定是否进入对应分支,具体包括:
若节点值大于插入窗口的最大值,或节点值小于插入窗口的最小值,则确定新的头指针和尾指针,并截取插入窗口,进入对应分支;否则,向数据队列中部移动头指针或尾指针,直至插入窗口两端的最值与节点值不再相同,并进行未赋值指针的移动操作,进入对应分支。
需要说明的是,若插入窗口两端的最小值与节点值相同,则向数据队列中部移动尾指针,若插入窗口两端的最大值与节点值相同,则向数据队列中部移动头指针;
优选的,所述若节点值大于插入窗口的最大值,或节点值小于插入窗口的最小值,则确定新的头指针和尾指针,并截取插入窗口,进入对应分支,具体包括:
若节点值大于插入窗口的最大值,尾指针不变,将头指针C的值赋值给未赋值指针B,以赋值后的指针B作为新的头指针,截取插入窗口,若指向有序数据队列对象的指针有效且队列不为空,进入对应分支,否则不进入;
若节点值小于插入窗口的最小值,头指针不变,将尾指针的值赋值给未赋值指针A,以赋值后的指针A作为新的头指针,截取插入窗口,若指向有序数据队列对象的指针有效且队列不为空,进入对应分支,否则不进入。
优选的,所述进行未赋值指针的移动操作,确定是否进入对应分支,具体包括;
使未赋值指针A指向有序数据队列头部(即指向最大值),向有序数据队列尾部移动指针A,直至指针A所示值不大于当前节点,使未赋值指针B指向有序数据队列尾部(即指向最小值),向有序数据队列头部移动指针B,直至指针B所示值不小于当前节点,头指针不变,以指针A作为新的尾指针,截取插入窗口,若指向有序数据队列对象的指针有效且数据队列不为空,进入对应分支,否则不进入。
需要说明是,所述对应分支,为Tango树的分支,进入分支后,重复进行新建指向插入窗口中有序数据队列对象的指针,读取当前节点,判断有无节点值,若无节点值,则移动指向插入窗口中有序数据队列头部的指针,并从插入窗口中有序数据队列头部依次执行插入操作,若有节点值,则根据所述节点值,确定新的头指针和尾指针,并确定是否进入对应分支,或进行移动指针操作,并确定是否进入对应分支。
进入对应分支的方向以Tango树的实际组织策略为准,例如在二叉结构下,定义右孩子(或优先路径)比当前节点大,左孩子(或优先路径)比当前节点小,那么,砸死节点值大于插入窗口的最大值时,尾指针不变,将头指针C的值赋值给未赋值指针B,以赋值后的指针B作为新的头指针,截取插入窗口,若指向有序数据队列对象的指针有效且队列不为空,进入对应分支,此时的对应分支为左孩子;在节点值小于插入窗口的最小值时,头指针不变,将尾指针的值赋值给未赋值指针A,以赋值后的指针A作为新的头指针,截取插入窗口,若指向有序数据队列对象的指针有效且队列不为空,进入对应分支,此时的对应分支为右孩子;
若遇到确定插入位置时需形成新的优先路径,则将新的路径链接到Tango树,再开辟节点进行插入;若不必进入新路径,则可直接开辟节点,将节点连接到当前优先路径中,进行插入;滑动窗口在Tango树中的插入操作流程图,如图4所示,插入操作具有递归的特征,递归出口是当前窗口执行插入完毕,递归入口在左侧插入和右侧插入模块中;插入操作中切分窗口的细化流程图,如图5所示,面对当前节点,首先排除滑动窗口中与当前节点元素值相同的部分,因为窗口有序,故这个相同的值如果存在窗口中,要么在两端,要么在中间。因此首先与首位比较,收缩窗口,排除前者,再通过不包含等于的比较,排除后者;
创建优先路径的流程图,如图6所示,创建孩子节点的流程图,如图7所示,开始插入时若当前窗口大于1,则应在对应位置插入第一个元素后,不断向左孩子节点进行插入,直到当前窗口中所有元素插入完毕,这个操作符合左侧插入的递归思想,实际执行中以循环控制较为方便,该循环需要受到Tango树自平衡策略的约束;
为了验证本发明实施例所述的基于滑动窗口的Tango树构建方法的行性和有效性,在真实环境下,通过对基于滑动窗口的Tango树构建系统在构建过程中的时间开销进行测试来验证本发明实施例所述技术方案的效果,测试结果示意图,如图8所示;
采取在Tango树构建开始和结束时取到时间计算构建时间开销,时间粒度精确到微秒(百万分之一秒),根据元数据节点数目不同,采用随机生成指定数量级的元数据节点作为运行条件分别进行十次以上的测试,取平均值;记录了元数据节点个数为万级、十万级、百万级和千万级的数量级时的创建Tango树索引的时间开销;
在一万个节点的条件下,传统构建方法(即采用基于逐个插入节点的构建Tango树的方法,如图8中灰色图例)消耗总时间15620微秒,采用基于滑动窗口的Tango树构建方法(基于滑动窗口批量插入节点的构建方法),如图8中黑色图例,时间消耗为15600微秒,二者差距较小;在十万节点的条件下,传统构建方法消耗总时间为118104微秒,改进方法测得时间消耗为124800微秒。两者差距开始增大;在百万节点的条件下,传统构建方法消耗总时间为3.2秒,改进方法测得时间消耗为1.35秒。这个差距足够明显,此时已经可以明显看到,在大量插入的条件下,改进后方法所产生的显著效果;在千万节点的条件下,传统构建方法已经出现分钟级的等待,消耗总时间为267秒,改进方法测得时间消耗为27秒。基于滑动窗口的Tango树构建方法比现有方法的性能提高了一个数量级。
实施例2
本发明实施例提供了一种基于滑动窗口的Tango树构建系统,包括待排序数据操作模块、有序数据形成及复制模块、插入操作及分支进入模块和分支重复生成模块;
所述待排序数据操作模块,用于创建排序窗口,将待排序数据连成队列,使所述待排序数据适应排序窗口滑动;
所述有序数据形成及复制模块,用于通过滑动排序窗口读入待排序数据,对待排序数据进行排序,得到有序数据,新建插入窗口,复制有序数据至插入窗口;
所述插入操作及分支进入模块,用于新建指向插入窗口中有序数据队列对象的指针,读取当前节点,判断有无节点值,若无节点值,则移动指向插入窗口中有序数据队列头部的指针,并从插入窗口中有序数据队列头部依次执行插入操作,若有节点值,则根据所述节点值,确定新的头指针和尾指针,并确定是否进入对应分支,或进行移动指针操作,并确定是否进入对应分支;
所述分支重复生成模块,用于在进入对应分支后,针对对应分支,使所述插入操作及分支进入模块重复执行其功能,直至Tango树构建结束。
优选的,所述基于滑动窗口的Tango树构建系统,还包括清空操作模块,所述清空操作模块,用于在将有序数据复制至插入窗口后,对排序窗口执行清空操作。
优选的,插入操作及分支进入模块,根据所述节点值,确定新的头指针和尾指针,并确定是否进入对应分支,或进行移动指针操作,并确定是否进入对应分支,具体包括:
在节点值大于插入窗口的最大值时,或在节点值小于插入窗口的最小值时,确定新的头指针和尾指针,并截取插入窗口,进入对应分支;否则,向数据队列中部移动头指针或尾指针,直至插入窗口两端的最值与节点值不再相同,并进行未赋值指针的移动操作,进入对应分支。
优选的,插入操作及分支进入模块在节点值大于插入窗口的最大值时,或在节点值小于插入窗口的最小值时,确定新的头指针和尾指针,并截取插入窗口,进入对应分支,具体包括:
在节点值大于插入窗口的最大值时,尾指针不变,将头指针C的值赋值给未赋值指针B,以赋值后的指针B作为新的头指针,截取插入窗口,若指向有序数据队列对象的指针有效且队列不为空,进入对应分支,否则不进入;
在节点值小于插入窗口的最小值时,头指针不变,将尾指针的值赋值给未赋值指针A,以赋值后的指针A作为新的头指针,截取插入窗口,若指向有序数据队列对象的指针有效且队列不为空,进入对应分支,否则不进入。
优选的,插入操作及分支进入模块进行未赋值指针的移动操作,进入对应分支,具体包括,使未赋值指针A指向有序数据队列头部,向有序数据队列尾部移动指针A,直至指针A所示值不大于当前节点,使未赋值指针B指向有序数据队列尾部,向有序数据队列头部移动指针B,直至指针B所示值不小于当前节点,头指针不变,以指针A作为新的尾指针,截取插入窗口,若指向有序数据队列对象的指针有效且数据队列不为空,进入对应分支,否则不进入。
需要说明的是,实施例1和实施例2未重复描述之处可互相借鉴。
本发明一种基于滑动窗口的Tango树构建方法及系统,公开了通过创建排序窗口,将待排序数据连成队列,使所述待排序数据适应排序窗口滑动;通过滑动排序窗口读入待排序数据,对待排序数据进行排序,得到有序数据,新建插入窗口,复制有序数据至插入窗口;新建指向插入窗口中有序数据队列对象的指针,读取当前节点,判断有无节点值,若无节点值,则移动指向插入窗口中有序数据队列头部的指针,并从插入窗口中有序数据队列头部依次执行插入操作,若有节点值,则根据所述节点值,确定新的头指针和尾指针,并确定是否进入对应分支,或进行移动指针操作,并确定是否进入对应分支;进入对应分支后,针对对应分支,重复执行上一步骤,直至Tango树构建结束;充分利用了递归机制中压栈操作的特点,优化节点的访问次数,提高插入效率,从而提高了新建规模较大的Tango树的速度。
以上所述本发明的具体实施方式,并不构成对本发明保护范围的限定。任何根据本发明的技术构思所做出的各种其他相应的改变与变形,均应包含在本发明权利要求的保护范围内。
Claims (8)
1.一种基于滑动窗口的Tango树构建方法,其特征在于,包括以下步骤:
步骤S1、创建排序窗口,将待排序数据连成队列,使所述待排序数据适应排序窗口滑动;
步骤S2、通过滑动排序窗口读入待排序数据,对待排序数据进行排序,得到有序数据,新建插入窗口,复制有序数据至插入窗口;
步骤S3、新建指向插入窗口中有序数据队列对象的指针,读取当前节点,判断有无节点值,若无节点值,则移动指向插入窗口中有序数据队列头部的指针,并从插入窗口中有序数据队列头部依次执行插入操作,若有节点值,则根据所述节点值,确定新的头指针和尾指针,并确定是否进入对应分支,或进行移动指针操作,并确定是否进入对应分支,具体包括:
若节点值大于插入窗口的最大值,或节点值小于插入窗口的最小值,则确定新的头指针和尾指针,并截取插入窗口,进入对应分支;否则,向数据队列中部移动头指针或尾指针,直至插入窗口两端的最值与节点值不再相同,并进行未赋值指针的移动操作,进入对应分支;
步骤S4、进入对应分支后,针对对应分支,重复执行步骤S3,直至Tango树构建结束。
2.根据权利要求1所述的基于滑动窗口的Tango树构建方法,其特征在于,还包括,在将有序数据复制至插入窗口后,对排序窗口执行清空操作。
3.根据权利要求1所述的基于滑动窗口的Tango树构建方法,其特征在于,所述若节点值大于插入窗口的最大值,或节点值小于插入窗口的最小值,则确定新的头指针和尾指针,并截取插入窗口,进入对应分支,具体包括:
若节点值大于插入窗口的最大值,尾指针不变,将头指针C的值赋值给未赋值指针B,以赋值后的指针B作为新的头指针,截取插入窗口,若指向有序数据队列对象的指针有效且队列不为空,进入对应分支,否则不进入;
若节点值小于插入窗口的最小值,头指针不变,将尾指针的值赋值给未赋值指针A,以赋值后的指针A作为新的头指针,截取插入窗口,若指向有序数据队列对象的指针有效且队列不为空,进入对应分支,否则不进入。
4.根据权利要求1所述的基于滑动窗口的Tango树构建方法,其特征在于,所述进行未赋值指针的移动操作,确定是否进入对应分支,具体包括;
使未赋值指针A指向有序数据队列头部,向有序数据队列尾部移动指针A,直至指针A所示值不大于当前节点,使未赋值指针B指向有序数据队列尾部,向有序数据队列头部移动指针B,直至指针B所示值不小于当前节点,头指针不变,以指针A作为新的尾指针,截取插入窗口,若指向有序数据队列对象的指针有效且数据队列不为空,进入对应分支,否则不进入。
5.一种基于滑动窗口的Tango树构建系统,其特征在于,包括:
待排序数据操作模块,用于创建排序窗口,将待排序数据连成队列,使所述待排序数据适应排序窗口滑动;
有序数据形成及复制模块,用于通过滑动排序窗口读入待排序数据,对待排序数据进行排序,得到有序数据,新建插入窗口,复制有序数据至插入窗口;
插入操作及分支进入模块,用于新建指向插入窗口中有序数据队列对象的指针,读取当前节点,判断有无节点值,若无节点值,则移动指向插入窗口中有序数据队列头部的指针,并从插入窗口中有序数据队列头部依次执行插入操作,若有节点值,则根据所述节点值,确定新的头指针和尾指针,并确定是否进入对应分支,或进行移动指针操作,并确定是否进入对应分支,具体包括:在节点值大于插入窗口的最大值时,或在节点值小于插入窗口的最小值时,确定新的头指针和尾指针,并截取插入窗口,进入对应分支;否则,向数据队列中部移动头指针或尾指针,直至插入窗口两端的最值与节点值不再相同,并进行未赋值指针的移动操作,进入对应分支;
分支重复生成模块,用于在进入对应分支后,针对对应分支,使所述插入操作及分支进入模块重复执行其功能,直至Tango树构建结束。
6.根据权利要求5所述的基于滑动窗口的Tango树构建系统,其特征在于,还包括清空操作模块,所述清空操作模块,用于在将有序数据复制至插入窗口后,对排序窗口执行清空操作。
7.根据权利要求5所述的基于滑动窗口的Tango树构建系统,其特征在于,插入操作及分支进入模块在节点值大于插入窗口的最大值时,或在节点值小于插入窗口的最小值时,确定新的头指针和尾指针,并截取插入窗口,进入对应分支,具体包括:
在节点值大于插入窗口的最大值时,尾指针不变,将头指针C的值赋值给未赋值指针B,以赋值后的指针B作为新的头指针,截取插入窗口,若指向有序数据队列对象的指针有效且队列不为空,进入对应分支,否则不进入;
在节点值小于插入窗口的最小值时,头指针不变,将尾指针的值赋值给未赋值指针A,以赋值后的指针A作为新的头指针,截取插入窗口,若指向有序数据队列对象的指针有效且队列不为空,进入对应分支,否则不进入。
8.根据权利要求5所述的基于滑动窗口的Tango树构建系统,其特征在于,插入操作及分支进入模块进行未赋值指针的移动操作,进入对应分支,具体包括,使未赋值指针A指向有序数据队列头部,向有序数据队列尾部移动指针A,直至指针A所示值不大于当前节点,使未赋值指针B指向有序数据队列尾部,向有序数据队列头部移动指针B,直至指针B所示值不小于当前节点,头指针不变,以指针A作为新的尾指针,截取插入窗口,若指向有序数据队列对象的指针有效且数据队列不为空,进入对应分支,否则不进入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010361443.9A CN111488496B (zh) | 2020-04-30 | 2020-04-30 | 一种基于滑动窗口的Tango树构建方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010361443.9A CN111488496B (zh) | 2020-04-30 | 2020-04-30 | 一种基于滑动窗口的Tango树构建方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111488496A CN111488496A (zh) | 2020-08-04 |
CN111488496B true CN111488496B (zh) | 2023-07-21 |
Family
ID=71797885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010361443.9A Active CN111488496B (zh) | 2020-04-30 | 2020-04-30 | 一种基于滑动窗口的Tango树构建方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111488496B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116151597B (zh) * | 2023-04-20 | 2023-07-07 | 华能信息技术有限公司 | 一种基于私有云架构的快速插拔式流程管理方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011170774A (ja) * | 2010-02-22 | 2011-09-01 | Nippon Telegr & Teleph Corp <Ntt> | 決定木生成装置、決定木生成方法、及びプログラム |
CN103793267A (zh) * | 2014-01-23 | 2014-05-14 | 腾讯科技(深圳)有限公司 | 队列的访问方法及装置 |
WO2016179968A1 (zh) * | 2015-05-13 | 2016-11-17 | 深圳市中兴微电子技术有限公司 | 一种队列管理方法、装置及存储介质 |
CN107506490A (zh) * | 2017-09-22 | 2017-12-22 | 深圳大学 | 滑动窗口下基于位置top‑k关键词查询的优先查询算法及系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515298B (zh) * | 2009-03-30 | 2013-09-25 | 华为技术有限公司 | 基于树形数据结构节点的插入的方法和存储装置 |
KR101079063B1 (ko) * | 2010-02-22 | 2011-11-07 | 주식회사 케이티 | 점진적으로 증가하는 데이터를 처리하기 위한 빈발패턴 트리를 이용한 연관규칙 추출 장치 및 방법 |
CN102306183B (zh) * | 2011-08-30 | 2014-05-21 | 王洁 | 一种对事务数据流进行闭合加权频繁模式挖掘的方法 |
US20160012110A1 (en) * | 2014-07-08 | 2016-01-14 | International Business Machines Corporation | General and automatic approach to incrementally computing sliding window aggregates in streaming applications |
CN104850577A (zh) * | 2015-03-19 | 2015-08-19 | 浙江工商大学 | 一种基于有序复合树结构的数据流最大频繁项集挖掘方法 |
CN105868293A (zh) * | 2016-03-24 | 2016-08-17 | 南京邮电大学 | 一种基于Topology模型的数据流频繁闭项集的挖掘方法 |
CN110399910A (zh) * | 2019-07-08 | 2019-11-01 | 东华大学 | 基于滑动窗口和hwks理论框架的火灾异常点在线检测方法 |
-
2020
- 2020-04-30 CN CN202010361443.9A patent/CN111488496B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011170774A (ja) * | 2010-02-22 | 2011-09-01 | Nippon Telegr & Teleph Corp <Ntt> | 決定木生成装置、決定木生成方法、及びプログラム |
CN103793267A (zh) * | 2014-01-23 | 2014-05-14 | 腾讯科技(深圳)有限公司 | 队列的访问方法及装置 |
WO2016179968A1 (zh) * | 2015-05-13 | 2016-11-17 | 深圳市中兴微电子技术有限公司 | 一种队列管理方法、装置及存储介质 |
CN107506490A (zh) * | 2017-09-22 | 2017-12-22 | 深圳大学 | 滑动窗口下基于位置top‑k关键词查询的优先查询算法及系统 |
Non-Patent Citations (1)
Title |
---|
基于滑动窗口挖掘数据流高效用项集的有效算法;郭世明;高宏;;哈尔滨工程大学学报(04);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111488496A (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109388565B (zh) | 基于生成式对抗网络的软件系统性能优化方法 | |
CN110442513A (zh) | 功能测试用例的执行方法、装置、计算机设备和存储介质 | |
CN104573142A (zh) | 基于神经网络的口令属性分析方法 | |
CN113918733B (zh) | 一种获取目标知识图谱的数据处理系统 | |
CN113190220A (zh) | Json文件差异化对比方法及装置 | |
CN111488496B (zh) | 一种基于滑动窗口的Tango树构建方法及系统 | |
Hong et al. | Pathwise estimation of probability sensitivities through terminating or steady-state simulations | |
CN114925238B (zh) | 一种基于联邦学习的视频片段检索方法及系统 | |
CN110264392B (zh) | 一种基于多gpu的强连通图检测方法 | |
CN116150757A (zh) | 一种基于cnn-lstm多分类模型的智能合约未知漏洞检测方法 | |
CN109901049A (zh) | 检测集成电路用时序路径中异步路径的方法、装置 | |
CN107992358B (zh) | 一种适用于核外图处理系统的异步io执行方法及系统 | |
CN111738290B (zh) | 图像检测方法、模型构建和训练方法、装置、设备和介质 | |
CN111240971B (zh) | 风控规则测试用例的生成方法、装置、服务器和存储介质 | |
CN101894072A (zh) | 一种模型检测中异常终止的检测方法 | |
CN114841103B (zh) | 门级电路的并行仿真方法、系统、存储介质及设备 | |
WO2022110978A1 (en) | Method and apparatus for driving data search | |
CN113900942B (zh) | 一种生成飞控机载模型精简测试用例集的方法 | |
CN115543809A (zh) | 自动驾驶功能的测试场景库构建方法及装置 | |
CN112765766B (zh) | 一种动态交互的细粒度离散事件系统时序推进方法 | |
CN110059378B (zh) | 一种基于GPU并行计算的自动制造系统Petri网状态生成方法 | |
Zhang et al. | Evolutionary generation of test data for many paths coverage | |
CN113254428A (zh) | 一种基于决策树的缺失数据填充方法及系统 | |
CN116992602B (zh) | 一种基于失效状态表征的可靠性模糊评价方法、电子设备和存储介质 | |
CN113326182B (zh) | 一种基于采样和集成学习的软件缺陷预测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |