CN108647302B - 一种数据库排序方法及电子设备 - Google Patents
一种数据库排序方法及电子设备 Download PDFInfo
- Publication number
- CN108647302B CN108647302B CN201810437025.6A CN201810437025A CN108647302B CN 108647302 B CN108647302 B CN 108647302B CN 201810437025 A CN201810437025 A CN 201810437025A CN 108647302 B CN108647302 B CN 108647302B
- Authority
- CN
- China
- Prior art keywords
- data
- sorting
- tree
- ordering
- leaf nodes
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据库排序方法及电子设备,应用于人工智能平台中的数据库,所述方法包括:获得所述数据库中需要进行排序的多个数据;利用预先建立的锦标赛排序模型对所述多个数据建立排序树并进行数据排序;其中,在所述锦标赛排序模型中,对于所述排序树每层奇偶相邻的两个叶子节点的数据的排序中,将排序优胜的数据存储在所述两个叶子节点中第一个节点所对应的存储地址中,将排序淘汰的数据存储在所述两个叶子节点中第二个节点所对应的存储地址中。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及一种数据库排序方法及电子设备。
背景技术
随着网络的发展,人工智能AI(Artificial Intelligence)平台的使用越来越广泛。人工智能平台通过数据库为用户提供强大的数据存储功能。
而对人工智能平台中的数据库中,通常需要进行数据排序或查找等操作。例如,数据库中对存储的数据按照数据的大小进行排序,以便于数据查找等操作。
为了方便用户对人工智能平台中数据库的访问,亟需一种能够快速对数据库中数据进行排序的技术方案。
发明内容
本申请的目的是提供一种数据库排序方法及电子设备,用以解决现有技术中需要快速对数据库中数据进行排序的技术问题。
本申请提供了一种数据库排序方法,应用于人工智能平台中的数据库,所述方法包括:
获得所述数据库中需要进行排序的多个数据;
利用预先建立的锦标赛排序模型对所述多个数据建立排序树并进行数据排序;
其中,在所述锦标赛排序模型中,对于所述排序树每层奇偶相邻的两个叶子节点的数据的排序中,将排序优胜的数据存储在所述两个叶子节点中第一个节点所对应的存储地址中,将排序淘汰的数据存储在所述两个叶子节点中第二个节点所对应的存储地址中。
上述方法,优选地,利用预先建立的锦标赛排序模型对所述多个数据建立排序树并进行数据排序,包括:
从所述多个数据中获得预设数量的目标数据;
将所述目标数据存储到预设的芯片中的存储器上;
在所述芯片中的存储器上,对所述目标数据建立排序树,所述目标数据形成所述排序树的叶子节点;
利用所述锦标赛排序模型,对所述排序树中叶子节点的数据进行排序。
上述方法,优选地,利用所述锦标赛排序模型,对所述排序树中叶子节点的数据进行排序,包括:
对所述排序树中奇偶相邻的两个叶子节点之间进行排序,将优胜的叶子节点的数据存储到所述两个叶子节点中第一个节点所对应的存储地址中,将淘汰的叶子节点的数据存储到所述两个叶子节点中第二个节点所对应的存储地址;
对第一层排序出的优胜的叶子节点组成第二层待排序的数据叶子节点,并再次利用所述锦标赛排序模型进行排序;对第二层排序出的优胜的节点形成排序树的第三层的待排序的数据叶子节点,并再次利用所述锦标赛排序模型进行排序,依次类推,直到所述排序树中所有节点均充满排序后的数据,并输出一个最终的优胜者。
上述方法,优选地,还包括:
预先在预设的芯片上利用锦标赛排序算法建立所述锦标赛排序模型。
上述方法,优选地,在输出一个最终的优胜者之后,所述方法还包括:
从所述多个数据中获得一个新的目标数据;
将所述新的目标数据加入所述排序树中所述优胜者所在的叶子节点,并对加入所述新的目标数据后的排序树利用所述锦标赛排序模型进行排序。
上述方法,优选地,还包括:
判断所述新的目标是否优胜于所述优胜者,如果是,对所述新的目标数据设置第一标签属性,所述第一标签属性表明所述新的目标数据在所述排序树中作为最劣的数据参与排序。
上述方法,优选地,还包括:
在所述排序树中所有的叶子节点数据均设置有所述第一标签属性之后,新的目标数据若优于最新输出的优胜者数据,给新的目标数据设置第二标签属性,并利用所述锦标赛排序模型继续对当前的所述排序树进行排序。
上述方法,优选地,在输出一个最终的优胜者之后,所述方法还包括:
如果所述多个数据的数据均已加入过所述排序树,对所述排序树进行排空操作,以将所述排序树中的所有数据均有序输出。
上述方法,优选地,对所述排序树进行排空操作,包括:
在所述排序树中输出一个优胜者时,在所述优胜者所在的叶子节点上添加哑元数据,所述哑元数据为所述排序树中最劣的数据,再利用所述锦标赛排序模型对当前的所述排序树进行排序,直到所述排序树中的所有数据均有序输出。
本申请还提供了一种电子设备,应用于人工智能平台中的数据库,所述电子设备包括存储器和处理器,其中:
所述存储器,用于存储应用程序及所述应用程序运行所产生的数据;
所述处理器,用于执行所述应用程序,以实现以下功能:获得所述数据库中需要进行排序的多个数据,利用预先建立的锦标赛排序模型对所述多个数据建立排序树并进行数据排序;
其中,在所述锦标赛排序模型中,对于所述排序树每层奇偶相邻的两个叶子节点的数据的排序中,将排序优胜的数据存储在所述两个叶子节点中第一个节点所对应的存储地址中,将排序淘汰的数据存储在所述两个叶子节点中第二个节点所对应的存储地址中。
由上述方案可知,本申请提供的一种数据库排序方法及电子设备,通过对数据库中需要进行排序的多个数据利用预先建立的锦标赛排序模型建立排序树,从而对数据进行排序。由此,本申请中利用锦标赛排序模型,对于排序树中每层奇偶相邻的两个叶子节点的数据的排序中,将排序优胜的数据存储在这两个节点中第一个节点的存储地址中,将排序淘汰的数据存储到第二个节点的存储地址中,从而不需要使用额外的存储地址,节省排序过程中的存储空间及内存资源,由此实现快速的数据排序。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的一种数据库排序方法的流程图;
图2及图3分别为本申请实施例的应用示例图;
图4为本申请实施例一的部分流程图;
图5、图6、图7a~图7c、图8、图9及图10分别为本申请实施例的其他应用示例图;
图11为本申请实施例二提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1,为本申请实施例一提供的一种数据库排序方法的实现流程图,该方法可以适用于AI平台中的数据库中,AI平台中的数据库可以为各种数据结构的数据库,能够实现海量数据存储。
在本实施例中,该方法可以包括以下步骤:
步骤101:获得数据库中需要进行排序的多个数据。
其中,本实施例中可以根据用户的输入数据来获得需要进行排序的多个数据,例如,首先接收用户的输入操作,再根据输入操作中用户所需要进行排序的数据标识,如数据存储地址或者数据文件名称等,来获得需要进行排序的多个数据;或者,本实施例中可以根据预先设定来获得多个数据,例如,预先设置每隔预设时间长如一天或者几个小时来做一次数据排序及对哪些数据进行排序,由此,每到预定的开始时刻,本实施例获取一次数据库中需要进行排序的多个数据。
步骤102:利用预先建立的锦标赛排序模型对多个数据建立排序树并进行数据排序。
其中,排序树的结构如图2中所示,在预先建立的锦标赛排序模型中,是对排序树每层的奇偶相邻的两个叶子节点的数据分别进行排序,将排序优胜的数据继续进行排序,以此类推,直到排序出最优的数据,完成数据排序。
需要说明的是,排序树的叶子节点的数量可以根据用户需求或者设备需求来进行设置,如8个或16个或32个或更多个,本实施例中可以将需要排序的多个数据串行地加入到排序树中参与排序,从而串行的输出有序数据。
而在本实施例中的锦标赛排序模型中,对于排序树中每层奇偶相邻的两个叶子节点的数据的排序中,不需要额外的存储空间来存储排序优胜和淘汰的数据,而是将排序优胜的数据存储在两个叶子节点中第一个节点的存储地址中,将排序淘汰的数据存储在两个叶子节点中第二个节点的存储地址中,如图3中所示由大到小排序,将第0个叶子节点和第1个叶子节点的数据进行排序后,将优胜的第1个叶子节点的数据“48”存储到第0个叶子节点的存储地址中,将淘汰的第0个叶子节点的数据“0”存储到第1个叶子节点的存储地址中,以此类推,完成叶子节点的第一次排序;之后,对排序优胜的一层叶子节点再次采用以上排序方案继续进行排序,直到排序产生最优的数据“240”,完成数据排序。
由上述方案可知,本申请实施例一提供的一种数据库排序方法中,通过对数据库中需要进行排序的多个数据利用预先建立的锦标赛排序模型建立排序树,从而对排序树中的数据进行排序。由此,本实施例中利用锦标赛排序模型,对于排序树中每层奇偶相邻的两个叶子节点的数据的排序中,将排序优胜的数据存储在这两个节点中第一个节点的存储地址中,将排序淘汰的数据存储到第二个节点的存储地址中,即保持数据不变或者交换数据,从而不需要使用额外的存储空间,节省排序过程中的存储空间及内存资源,由此实现快速的数据排序。
需要说明的是,在锦标赛排序模型中,可以根据排序规则如从小到大的排序或者从大到小的排序等,始终是排序优胜的数据存储在第一个节点所对应的存储位置和排序淘汰的数据存储到两个叶子节点中第二个节点所对应的的存储地址中。这种实现方案与图1中所示的实现方案为同一个发明构思,均在本申请的保护范围内。
在一种实现方式中,本实施例在利用预先建立的锦标赛排序模型对多个数据建立排序树并进行数据排序时,可以通过以下方式实现,如图4中所示:
步骤401:从多个数据中获得预设数量的目标数据。
其中,预设数量是指锦标赛排序模型中排序树的叶子节点的数量,本实施例中首先选择预设数量的目标数据来进行排序树的建立并输出第一个优胜者。
步骤402:将目标数据存储到预设的芯片中的存储器上。
其中,芯片可以采用FPGA(Field-Programmable Gate Array)等片上存储器实现,也可以采用ASIC(Application Specific Integrated Circuit)芯片实现,本实施例中通过芯片逻辑实现数据存储及数据排序,从而实现硬件加速。
如图5中所示,将多个数据中的8个目标数据“23、12、21、56、39、32、47、51”存储到FPGA上相应的存储地址上,这8个数据占用FPGA上的8个存储地址,其中,这里的存储地址在片上存储器上可以为连续地址,也可以为非连续地址。
步骤403:在芯片中的存储器上,对目标数据建立排序树。
如图6中所示,图5中FPGA上存储的8个目标数据建立排序树后,这8个目标数据在排序树中形成叶子节点。
步骤404:利用锦标赛排序模型,对排序树中叶子节点的数据进行排序。
具体的,对排序树中奇偶相邻的两个叶子节点之间进行排序,将优胜的叶子节点的数据存储到所述两个叶子节点中第一个节点所对应的存储地址中,将淘汰的叶子节点的数据存储到所述两个叶子节点中第二个节点所对应的存储地址,其中,排序树中叶子节点的奇偶相邻是指,在排序树中数据所在的叶子节点的位置奇偶相邻,如图2和图3中叶子节点从0到15设置序号,第0个叶子节点与第1个叶子节点奇偶相邻,等等;
而之后,对第一层排序出的优胜的叶子节点也就是节点序号为偶数的节点(序号从0开始便于硬件处理)组成第二层待排序的数据叶子节点,并再次利用所述锦标赛排序模型进行排序;对第二层排序出的优胜的节点形成排序树的第三层的待排序的数据叶子节点,并再次利用所述锦标赛排序模型进行排序,依次类推,直到所述排序树中所有节点均充满排序后的数据,并输出一个最终的优胜者。
也就是说,对经过前一次排序后的所有优胜叶子节点再次使用锦标赛排序模型进行排序,直到排序得出最优的叶子节点,即优胜者。
如图7a中所示,对图6中的排序树进行排序,将23、12、21、56、39、32、47和51按照从大到小的排序规则进行排序,比较大的数据作为优胜,那么,将优胜的23与淘汰的12保持现有的存储地址,将优胜的56与淘汰的21互换存储地址,将优胜的39和淘汰的32保持现有的存储地址,将优胜的51与淘汰的47互换存储地址之后,对于优胜的23、56、39和51中,将优胜的56和淘汰的23互换存储地址,将优胜的51和淘汰的39互换存储地址,再对优胜的56和51进行排序,将优胜的56和淘汰的51保持现有的存储地址,最终得出的优胜数据即为排序最优,即为最优56,在排序出56后,继续对剩下的数据进行排序,直到所有数据排序结束,如图7b中所示,完成数据排序。
另外,如果按照从小到达的排序规则,小的数据作为优胜,那么可以继续按照前文的中排序方案实现排序,如图7c中所示,将23、12、21、56、39、32、47和51按照从大到小的排序规则进行排序,那么,将优胜的12与淘汰的23互换存储地址,将优胜的21与淘汰的56保持现有的存储地址,将优胜的32和淘汰的39互换存储地址,将优胜的47与淘汰的51保持现有的存储地址之后,对于优胜的12、21、32和47中,将优胜的12和淘汰的21保持现有的存储地址,将优胜的32和淘汰的47保持现有的存储地址,再对优胜的12和32进行排序,将优胜的12和淘汰的32保持现有的存储地址,最终最后一个数据即为排序最优,即为最优12,在排序出12后,继续对剩下的数据进行排序,直到所有数据排序结束,如图8中所示,完成数据排序。
在一种实现方式中,本实施例中可以预先在芯片如FPGA或者ASIC上利用锦标赛排序算法建立锦标赛排序模型,也就是说,本实施例中使用如FPGA或ASIC等实现硬件加速,并在此基础上使用进化的锦标赛排序模型对需要进行排序的多个数据进行排序,节省内存空间,加快排序。
在本实施例中,完成一轮排序之后,排序树输出一个最终的优胜者,之后,本实施例需要对排序树中剩余的数据再次进行排序,此时可以从需要排序的多个数据中选择一个新的目标数据,将新的目标数据加入到排序树中输出的优胜者所在的原始叶子节点(所谓的原始叶子节点就是开始进入排序树时存储该数据的叶子节点的编号),之后,再对加入新的目标数据的排序树再次使用锦标赛排序模型进行排序,以此类推,每次输出一个优胜者之后,在输出的优胜者所在的叶子节点上添加新的目标数据,再对加入新的目标数据的排序树再次使用锦标赛排序模型进行排序,直到所有需要排序的数据均有序输出。例如,将图7a和图7c中的56或12进行输出,之后,在排序树中56或12所在的原叶子节点上(序号分别是3和1,其中叶子节点的排序号从0开始)添加新的目标数据,再对新的排序数据利用锦标赛排序模型进行排序。
如图9中所示,在56输出之后,将新的目标数据添加在原56所在的叶子节点的存储地址上,之后,再对排序树中的数据利用锦标赛排序模型进行排序。
而为了节省资源,加快排序速率,在排序树中加入新的目标数据之后,可以首先对输出的优胜者的数据与需要排序的新的目标数据进行比较,如果新的目标数据优胜于输出的优胜者,那么可以通过对新的目标数据设置第一标签属性,设置第一标签属性的数据可以当做最劣的数据参与进一步的排序操作,也就是说,再次使用锦标赛排序模型进行排序时默认设置有第一标签属性的数据为排序淘汰。如图10中所示,新的目标数据为89,优胜于输出的56,那么设置新的目标数据为最劣的数据的第一标签,也就是说,此时不需要对排序树进行排空操作,而是继续对新的排序树进行排序操作,直到排序树中所有节点的数据均被设置第一标签属性。
而在排序树中所有叶子节点均设置有第一标签属性之后,本实施例中撤销所有叶子节点数据的第一标签,并对撤销第一标签的当前排序树利用锦标赛排序模型进行排序,在输出一个优胜者后,加入新的目标数据占用输出的优胜者所在的叶子节点,参与新的排序,直到所有的数据有序输出。其中,如果加入的新的目标数据优胜于输出的优胜者,那么为这个新的目标数据所在的叶子节点数据设置第一标签属性,设置有第一标签属性的数据可以当做最劣的数据参与进一步的排序操作,同时作为下一轮待排序的数据预先进入排序树,当排序树中的所有叶子节点数据均带有第一标签属性,那么说明之前所有输出的数据组成了第一组有序数据,此时撤销排序树中所有叶子节点数据的第一标签属性,继续利用锦标赛排序模型对排序树进行排序,以此类推,直到需要排序的多个数据全部加入到排序树中。
或者,在所述排序树中所有的叶子节点数据均设置有所述第一标签属性之后,新的目标数据若优于最新输出的优胜者数据,给新的目标数据设置第二标签属性,并利用所述锦标赛排序模型继续对当前的所述排序树进行排序。也就是说,在排序树中所有的叶子节点数据均设置有所述第一标签属性之后,说明排序树中的所有叶子节点的数据均为新数据,而且这些数据均优于最新输出的优胜者,因此,对新的目标数据设置第二标签属性,从而可以继续利用锦标赛排序模型对排序树进行排序,以此类推,直到需要排序的多个数据全部加入到排序树中,完成所有数据的排序。
另外,在所有需要排序的多个数据全部加入到排序树,也就是说,没有新的目标数据加入到排序树中,那么此时排序树中已经加入了最后一个需要排序的数据,此时,对排序树进行排空操作,以使得排序树中所有叶子节点的数据均有序输出,此时所有需要排序的多个数据均有序输出。
具体的,本实施例在对排序树进行排空操作时,可以通过以下方式实现:
在排序树中输出一个优胜者时,在优胜者所在的叶子节点上添加哑元数据,这个哑元数据可以作为排序树中最劣的数据,即每次参与比较都为淘汰,之后,再利用锦标赛排序模型对当前的排序树进行排序,以此类推,直到排序树中所有数据均有序的输出,此时排序树中所有叶子节点的数据均为哑元数据,由此实现排序树的排空操作。
参考图11,为本申请实施例二提供的一种电子设备的结构示意图,该电子设备可以部署在AI平台中,该电子设备可以服务器、大型计算机等终端,用于对AI平台中的数据库进行数据排序。
在本实施例中,该电子设备可以包括以下结构:
存储器1101,用于存储应用程序及应用程序运行所产生的数据。
其中,存储器1101可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
处理器1102,用于执行所述应用程序,以实现以下功能:获得所述数据库中需要进行排序的多个数据,利用预先建立的锦标赛排序模型对所述多个数据建立排序树并进行数据排序;
其中,处理器1102可以根据用户的输入数据来获得需要进行排序的多个数据,例如,首先接收用户的输入操作,再根据输入操作中用户所需要进行排序的数据标识,如数据存储地址或者数据文件名称等,来获得需要进行排序的多个数据;或者,处理器1102可以根据预先设定来获得多个数据,例如,预先设置每隔预设时间长如一天或者几个小时来做一次数据排序及对哪些数据进行排序,由此,每到预定的开始时刻,本实施例获取一次数据库中需要进行排序的多个数据。
需要说明的是,排序树的结构如图2中所示,需要进行排序的多个数据分别存储在排序树的叶子节点中,在预先建立的锦标赛排序模型中,是对排序树每层的奇偶相邻的两个叶子节点的数据分别进行排序,将排序优胜的数据继续进行排序,以此列推,直到排序出最优的数据,完成数据排序。
而在本实施例中的锦标赛排序模型中,对于排序树中每层奇偶相邻的两个叶子节点的数据的排序中,不需要额外的存储空间来存储排序优胜和淘汰的数据,而是将排序优胜的数据存储在两个叶子节点中第一个节点的存储地址中,将排序淘汰的数据存储在两个叶子节点中第二个节点的存储地址中,如图3中所示进行由大到小排序,将第0个叶子节点和第1个叶子节点的数据进行排序后,将优胜的第1个叶子节点的数据“48”存储到第0个叶子节点的存储地址中,将淘汰的第0个叶子节点的数据“0”存储到第1个叶子节点的存储地址中,以此类推,完成叶子节点的第一次排序;之后,对排序优胜的一层叶子节点及排序淘汰的一层叶子节点均再次采用以上排序方案继续进行排序,直到排序产生最优的数据“240”,完成数据排序。
由上述方案可知,本申请实施例二提供的一种电子设备中,通过对数据库中需要进行排序的多个数据利用预先建立的锦标赛排序模型建立排序树,从而对排序树中的数据进行排序。由此,本实施例中利用锦标赛排序模型,对于排序树中每层奇偶相邻的两个叶子节点的数据的排序中,将排序优胜的数据存储在这两个节点中第一个节点的存储地址中,将排序淘汰的数据存储到第二个节点的存储地址中,即保持存储地址不变或者调换存储地址,从而不需要使用额外的存储地址,节省排序过程中的存储空间及内存资源,由此实现快速的数据排序。
需要说明的是,在锦标赛排序模型中,可以根据排序规则如从小到大的排序或者从大到小的排序等,选择排序优胜的数据和排序淘汰的数据所分别存储的存储地址。例如,排序优胜的数据也可以存储到两个叶子节点中第二个节点所对应的的存储地址中,相应的,排序淘汰的数据存储在所述两个叶子节点中第一个节点所对应的存储地址中。这种实现方案与图11中电子设备的实现方案为同一个发明构思,均在本申请的保护范围内。
在一种实现方式中,处理器1102在利用预先建立的锦标赛排序模型对所述多个数据建立排序树并进行数据排序时,可以通过以下方式实现:
首先,从多个数据中获得预设数量的目标数据,将目标数据存储到预设的芯片如FPGA或ASIC的存储器上;之后,在所述芯片中的存储器上,对所述目标数据建立排序树,所述目标数据在所述排序树中形成叶子节点;最后,利用所述锦标赛排序模型,对所述排序树中叶子节点的数据进行排序。
具体的,处理器1102在利用所述锦标赛排序模型,对所述排序树中叶子节点的数据进行排序时,可以为:
对所述排序树中奇偶相邻的两个叶子节点之间进行排序,将优胜的叶子节点的数据存储到所述两个叶子节点中第一个节点所对应的存储地址中,将淘汰的叶子节点的数据存储到所述两个叶子节点中第二个节点所对应的存储地址;
对第一层排序出的优胜的叶子节点组成第二层待排序的数据叶子节点,并再次利用所述锦标赛排序模型进行排序;对第二层排序出的优胜的节点形成排序树的第三层的待排序的数据叶子节点,并再次利用所述锦标赛排序模型进行排序,依次类推,直到所述排序树中所有节点均充满排序后的数据,并输出一个最终的优胜者。
另外,本实施例中可以将在芯片如FGPA或ASIC的存储器上利用锦标赛排序算法建立锦标赛排序模型,加快数据排序。
而在输出一个最终的优胜者之后,处理器1102还可以从所述多个数据中获得一个新的目标数据;将所述新的目标数据加入所述排序树中所述优胜者所在的原始叶子节点(原始叶子节点的序号会在数据排序过程中随着数据一并流动),并对加入所述新的目标数据后的排序树利用所述锦标赛排序模型进行排序。
除此之外,处理器1102可以判断所述新的目标是否优胜于所述优胜者,如果是,对所述新的目标数据所在的叶子节点设置第一标签属性,所述第一标签属性表明所述新的目标数据在所述排序树中最劣的数据参与排序。之后,处理器1102可以在所述排序树中所有的叶子节点均设置有所述第一标签属性之后,撤销所有的所述第一标签属性,并利用所述锦标赛排序模型对当前的所述排序树进行排序。
另外,在输出一个最优的优胜者之后,如果多个数据的数据均已加入过所述排序树,处理器1102可以对所述排序树进行排空操作,以将所述排序树中的所有数据均有序输出。
而处理器1102可以通过以下方式实现排序树排空操作:
在所述排序树中输出一个优胜者时,在所述优胜者所在的叶子节点上添加哑元数据,所述哑元数据为所述排序树中最劣的数据,再利用所述锦标赛排序模型对当前的所述排序树进行排序,直到所述排序树中的所有数据均有序输出。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种数据库排序方法及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种数据库排序方法,应用于人工智能平台中的数据库,所述方法包括:
获得所述数据库中需要进行排序的多个数据;
利用预先建立的锦标赛排序模型对所述多个数据建立排序树并进行数据排序;
其中,在所述锦标赛排序模型中,对于所述排序树每层奇偶相邻的两个叶子节点的数据的排序中,将排序优胜的数据存储在所述两个叶子节点中第一个节点所对应的存储地址中,将排序淘汰的数据存储在所述两个叶子节点中第二个节点所对应的存储地址中;
利用预先建立的锦标赛排序模型对所述多个数据建立排序树并进行数据排序,包括:
从所述多个数据中获得预设数量的目标数据;
将所述目标数据存储到预设的芯片中的存储器上;
在所述芯片中的存储器上,对所述目标数据建立排序树,所述目标数据形成所述排序树的叶子节点;
利用所述锦标赛排序模型,对所述排序树中叶子节点的数据进行排序。
2.根据权利要求1所述的方法,其特征在于,利用所述锦标赛排序模型,对所述排序树中叶子节点的数据进行排序,包括:
对所述排序树中奇偶相邻的两个叶子节点之间进行排序,将优胜的叶子节点的数据存储到所述两个叶子节点中第一个节点所对应的存储地址中,将淘汰的叶子节点的数据存储到所述两个叶子节点中第二个节点所对应的存储地址;
对第一层排序出的优胜的叶子节点组成第二层待排序的数据叶子节点,并再次利用所述锦标赛排序模型进行排序;对第二层排序出的优胜的节点形成排序树的第三层的待排序的数据叶子节点,并再次利用所述锦标赛排序模型进行排序,依次类推,直到所述排序树中所有节点均充满排序后的数据,并输出一个最终的优胜者。
3.根据权利要求1所述的方法,其特征在于,还包括:
预先在预设的芯片上利用锦标赛排序算法建立所述锦标赛排序模型。
4.根据权利要求2所述的方法,其特征在于,在输出一个最终的优胜者之后,所述方法还包括:
从所述多个数据中获得一个新的目标数据;
将所述新的目标数据加入所述排序树中所述优胜者所在的叶子节点,并对加入所述新的目标数据后的排序树利用所述锦标赛排序模型进行排序。
5.根据权利要求4所述的方法,其特征在于,还包括:
判断所述新的目标是否优胜于所述优胜者,如果是,对所述新的目标数据设置第一标签属性,所述第一标签属性表明所述新的目标数据在所述排序树中作为最劣的数据参与排序。
6.根据权利要求5所述的方法,其特征在于,还包括:
在所述排序树中所有的叶子节点数据均设置有所述第一标签属性之后,新的目标数据若优于最新输出的优胜者数据,给新的目标数据设置第二标签属性,并利用所述锦标赛排序模型继续对当前的所述排序树进行排序。
7.根据权利要求4所述的方法,其特征在于,在输出一个最终的优胜者之后,所述方法还包括:
如果所述多个数据的数据均已加入过所述排序树,对所述排序树进行排空操作,以将所述排序树中的所有数据均有序输出。
8.根据权利要求7所述的方法,其特征在于,对所述排序树进行排空操作,包括:
在所述排序树中输出一个优胜者时,在所述优胜者所在的叶子节点上添加哑元数据,所述哑元数据为所述排序树中最劣的数据,再利用所述锦标赛排序模型对当前的所述排序树进行排序,直到所述排序树中的所有数据均有序输出。
9.一种电子设备,应用于人工智能平台中的数据库,所述电子设备包括存储器和处理器,其中:
所述存储器,用于存储应用程序及所述应用程序运行所产生的数据;
所述处理器,用于执行所述应用程序,以实现以下功能:获得所述数据库中需要进行排序的多个数据,利用预先建立的锦标赛排序模型对所述多个数据建立排序树并进行数据排序;
其中,在所述锦标赛排序模型中,对于所述排序树每层奇偶相邻的两个叶子节点的数据的排序中,将排序优胜的数据存储在所述两个叶子节点中第一个节点所对应的存储地址中,将排序淘汰的数据存储在所述两个叶子节点中第二个节点所对应的存储地址中;
利用预先建立的锦标赛排序模型对所述多个数据建立排序树并进行数据排序,包括:
从所述多个数据中获得预设数量的目标数据;
将所述目标数据存储到预设的芯片中的存储器上;
在所述芯片中的存储器上,对所述目标数据建立排序树,所述目标数据形成所述排序树的叶子节点;
利用所述锦标赛排序模型,对所述排序树中叶子节点的数据进行排序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810437025.6A CN108647302B (zh) | 2018-05-09 | 2018-05-09 | 一种数据库排序方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810437025.6A CN108647302B (zh) | 2018-05-09 | 2018-05-09 | 一种数据库排序方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108647302A CN108647302A (zh) | 2018-10-12 |
CN108647302B true CN108647302B (zh) | 2022-03-25 |
Family
ID=63753815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810437025.6A Active CN108647302B (zh) | 2018-05-09 | 2018-05-09 | 一种数据库排序方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108647302B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6385612B1 (en) * | 1994-05-02 | 2002-05-07 | Compaq Computer Corporation | Method for sorting and storing data employing dynamic sort tree reconfiguration in volatile memory |
CN1464451A (zh) * | 2002-06-26 | 2003-12-31 | 联想(北京)有限公司 | 一种数据记录的排序方法 |
CN102867059A (zh) * | 2012-09-19 | 2013-01-09 | 浪潮(北京)电子信息产业有限公司 | 一种树形结构中数据的处理方法和系统 |
CN103745008A (zh) * | 2014-01-28 | 2014-04-23 | 河海大学 | 一种大数据索引的排序方法 |
CN104346380A (zh) * | 2013-07-31 | 2015-02-11 | 华为技术有限公司 | 基于MapReduce模型的数据排序方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9268863B2 (en) * | 2014-06-03 | 2016-02-23 | International Business Machines Corporation | Hierarchical in-memory sort engine |
-
2018
- 2018-05-09 CN CN201810437025.6A patent/CN108647302B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6385612B1 (en) * | 1994-05-02 | 2002-05-07 | Compaq Computer Corporation | Method for sorting and storing data employing dynamic sort tree reconfiguration in volatile memory |
CN1464451A (zh) * | 2002-06-26 | 2003-12-31 | 联想(北京)有限公司 | 一种数据记录的排序方法 |
CN102867059A (zh) * | 2012-09-19 | 2013-01-09 | 浪潮(北京)电子信息产业有限公司 | 一种树形结构中数据的处理方法和系统 |
CN104346380A (zh) * | 2013-07-31 | 2015-02-11 | 华为技术有限公司 | 基于MapReduce模型的数据排序方法和系统 |
CN103745008A (zh) * | 2014-01-28 | 2014-04-23 | 河海大学 | 一种大数据索引的排序方法 |
Non-Patent Citations (1)
Title |
---|
锦标赛排序;Chasoncsdn;《https://blog.csdn.net/u013188470/article/details/46970941》;20150720;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108647302A (zh) | 2018-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109800936B (zh) | 基于树状搜寻的调度方法与使用该方法的电子装置 | |
CN104601438B (zh) | 一种好友推荐方法和装置 | |
CN110378413A (zh) | 神经网络模型处理方法、装置以及电子设备 | |
AU2017268599B2 (en) | Method, device, server and storage medium of searching a group based on social network | |
CN110728376B (zh) | 一种基于树状拓扑结构的联邦学习方法及装置 | |
CN109951393A (zh) | 网段查找方法及装置 | |
CN109120431B (zh) | 复杂网络中传播源选择的方法、装置及终端设备 | |
CN111008873A (zh) | 一种用户确定方法、装置、电子设备及存储介质 | |
CN108647302B (zh) | 一种数据库排序方法及电子设备 | |
CN110334104A (zh) | 一种榜单更新方法、装置、电子设备及存储介质 | |
CN112199450B (zh) | 一种关系图谱构建方法、装置及电子设备 | |
CN113642594A (zh) | 报文分类方法及装置、电子设备、可读介质 | |
CN111135563A (zh) | 任务处理方法、装置、电子设备和计算机可读存储介质 | |
CN114492849B (zh) | 一种基于联邦学习的模型更新方法及装置 | |
CN111819552A (zh) | 访问控制列表的管理方法及装置 | |
CN109783052B (zh) | 数据排序方法、装置、服务器及计算机可读存储介质 | |
CN103092885A (zh) | 稀疏索引的建立方法和装置、稀疏索引及查询方法和装置 | |
CN108984780B (zh) | 基于支持重复键值树数据结构管理磁盘数据的方法和装置 | |
CN109299337A (zh) | 一种基于迭代的图搜索方法 | |
CN110889643A (zh) | 一种论文质量评价方法及系统 | |
CN112417290A (zh) | 书籍排序推送模型的训练方法、电子设备及存储介质 | |
CN109840790B (zh) | 用户流失的预测方法、装置及计算机设备 | |
CN112529235A (zh) | 路径确定方法和装置、电子设备和计算机可读存储介质 | |
CN116361319B (zh) | 一种数据库查询方法、装置、设备及存储介质 | |
JP3754043B2 (ja) | データ検索装置 |
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 |