[发明专利]排序表创建方法和装置、电子设备和存储介质在审
申请号: | 202210378749.4 | 申请日: | 2022-04-10 |
公开(公告)号: | CN114969028A | 公开(公告)日: | 2022-08-30 |
发明(设计)人: | 苗永春;谢志峰;蔡卓然;单洪泷 | 申请(专利权)人: | 上海大象张量纳米科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22 |
代理公司: | 上海科律专利代理事务所(特殊普通合伙) 31290 | 代理人: | 袁亚军 |
地址: | 200331 上海市普*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 排序 创建 方法 装置 电子设备 存储 介质 | ||
本发明提供一种排序表创建方法和装置、电子设备和存储介质。排序表创建方法包括:获取数据表中待排序的目标字段和键值的字节位数k;根据各个键值的第i有效位字节的字节值,将目标字段的键值分配到对应的数据桶中,其中i=k;判断数据桶或者子数据桶是否包括第一数据桶;若是,针对各个第一数据桶,并行地将其中的键值分配到对应的子数据桶中,并重新执行前述判断步骤;若否,按照预设的数据桶和子数据桶的排序和包含关系,将数据桶和子数据桶中的键值排序以得到排序表。基于前述的排序表创建方法,可以降低排序表创建的时间复杂度,提高了排序效率。
技术领域
本发明涉及数据库技术领域,尤其涉及一种排序表创建方法和装置、电子设备和存储介质。
背景技术
在某些数据库应用中,具有对数据表中的特定字段进行排序并创建排序表的需求。但是目前的排序表创建多是采用快速排序,其平均时间复杂度为O(nlogn),在对具有海量数据进行排序时,时间复杂度过高。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供了一种排序表创建方法和装置、电子设备和存储介质。
第一方面,本发明提供一种排序表创建方法,包括:
S101:获取数据表中待排序的目标字段,以及所述目标字段中键值的字节位数k;
S102:根据各个键值的第i有效位字节的字节值,采用桶排序方法将所述目标字段的键值分配到对应的数据桶中,其中i=k;
S103:判断数据桶或者子数据桶是否包括第一数据桶,其中所述第一数据桶为键值数量大于第一预设值的数据桶;若是,执行S104;若否,执行S105;
S104:使i=i-1,针对各个所述第一数据桶,并行地采用桶排序方法将其中的键值分配到对应的子数据桶中,并重新执行S103;
S105:按照预设的数据桶和子数据桶的排序和包含关系,将所述数据桶和所述子数据桶中的键值排序,以得到排序表。
可选的,所述第一预设值大于或者等于2;
在执行步骤S103判定数据桶或者子数据桶不包括第一数据桶后,并且执行S105之前,所述方法还包括S106:针对包括多个键值的数据桶或者子数据桶,采用除桶排序外的其他排序方法对其中的键值进行排序。
可选的,在所述步骤S104重新执行S103之前,还包括S1041:判断i是否大于第二预设值,其中第二预设值大于1但小于k;
响应于i大于所述第二预设值,重新执行S103;
响应于i小于或者等于所述第二预设值,执行S105。
可选的,所述目标字段的键值为有符号整数或者浮点数据;
在执行所述S105之前,所述方法包括S107:针对包括负数键值的数据桶或者子数据桶,对其中的键值进行反向排序。
可选的,在执行S101获取数据表中待排序的目标字段时,同时执行S108:获取所述数据表中的记录字段,所述记录字段包括各个键值对应的记录编号;
在执行S102和S104将键值分配到对应的数据桶时,同时移动所述键值对应的记录编号;
在执行步骤S105得到所述排序表时,按照键值的排序排列对应的记录编号。
可选的,在执行S105后还包括S109:
S109:按照所述排序表中条目的排序顺序,为所述排序表中的各个条目设置条目编号。
第二方面,本发明提供一种排序表创建装置,包括:目标字段获取单元,用于获取数据表中待排序的目标字段,以及所述目标字段中键值的字节位数k;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海大象张量纳米科技有限公司,未经上海大象张量纳米科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210378749.4/2.html,转载请声明来源钻瓜专利网。