[发明专利]数据排序方法和装置在审

专利信息
申请号: 201310505217.3 申请日: 2013-10-23
公开(公告)号: CN103577559A 公开(公告)日: 2014-02-12
发明(设计)人: 王传廷;刘辉军 申请(专利权)人: 华为技术有限公司
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 北京三高永信知识产权代理有限责任公司 11138 代理人: 黄厚刚
地址: 518129 广东*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 数据 排序 方法 装置
【说明书】:

技术领域

发明涉及计算机领域,特别涉及一种数据排序方法和装置。

背景技术

排序是计算机内经常进行的一种操作,其目的是将一组“无序”的数据调整为“有序”的数据。现有技术通常通过外部排序来对数据进行处理,即将待排序的数据分批读入内存,在内存中采用内存排序方法分别对读入的待排序数据进行排序,得到初始合并段,将得到的初始合并段写入磁盘;当所有的初始合并段均写入磁盘后,每次从磁盘中读取多个初始合并段,将该多个初始合并段进行归并,得到中间合并段,将得到的中间合并段再次写入磁盘中,直到磁盘中所有的初始合并段被归并为中间合并段后,再每次从磁盘中读取多个中间合并段进行归并,经过多次归并后,得到一个有序数据。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

在对数据的进行排序的过程中,需要进行多次归并,且待排序的数据量越大,磁盘IO越大,排序耗时长,磁盘负担重。

发明内容

为了解决现有技术的问题,本发明实施例提供了一种数据排序方法和装置。所述技术方案如下:

第一方面,提供了一种数据排序方法,所述方法包括:

将存储介质中的待排序数据分批读入内存,每读入一段数据,对所述读入的数据进行排序,得到有序数据段;

对所述有序数据段进行压缩,得到压缩数据段;

将每次压缩后得到的压缩数据段写入所述存储介质;

当所述待排序数据所对应的所有压缩数据段均写入所述存储介质时,将所述存储介质中的压缩数据段分批读入所述内存,并进行归并,得到合并数据段;

对所述合并数据段进行解压,获取排序数据;

将所述排序数据写入所述存储介质。

结合第一方面,在第一方面的第一种可能实现方式中,将存储介质中的待排序数据分批读入内存,每读入一段数据,对所述读入的数据进行排序,得到有序数据段包括:

将所述存储介质中的待排序数据分批读入所述内存;

每读入一段数据,使用预设内存排序算法,对所述读入的数据进行排序,得到所述有序数据段。

结合第一方面,在第一方面的第二种可能实现方式中,对所述有序数据段进行压缩,得到压缩数据段包括:

获取所述有序数据段中的数据以及每个数据在所述有序数据段中的出现次数;

根据所述有序数据段中的数据以及每个数据的出现次数,获取所述压缩数据段。

结合第一方面,在第一方面的第三种可能实现方式中,当所述待排序数据所对应的所有压缩数据段均写入所述存储介质时,将所述存储介质中的压缩数据段分批读入所述内存,并进行归并,得到合并数据段包括:

当所述待排序数据所对应的所有压缩数据段均写入所述存储介质时,将所述存储介质中的压缩数据段分批读入所述内存,每读入预设数目的压缩数据段,对所述预设数目的压缩数据段进行归并,得到中间数据段;

将所述中间数据段写入所述存储介质;

当所述待排序数据对应的所有中间数据段均写入所述存储介质时,将所述所有中间数据段分批读入所述内存,继续进行归并,直至得到所述合并数据段。

结合第一方面的第三种可能实现方式,在第一方面的第四种可能实现方式中,每读入预设数目的压缩数据段,对所述预设数目的压缩数据段进行归并,得到中间数据段包括:

获取所述预设数目的压缩数据段中的数据,以及每个数据在对应的压缩数据段中的出现次数;

获取每个数据的总出现次数,所述总出现次数为所述每个数据在对应的压缩数据段中的出现次数之和;

根据所述每个数据和所述每个数据的总出现次数,获取所述中间数据段。

第二方面,提供了一种数据排序装置,所述装置包括:

数据读入模块,用于将存储介质中的待排序数据分批读入内存,每读入一段数据,对所述读入的数据进行排序,得到有序数据段;

压缩模块,用于对所述有序数据段进行压缩,得到压缩数据段;

数据段写入模块,用于将每次压缩后得到的压缩数据段写入所述存储介质;

归并模块,用于当所述待排序数据所对应的所有压缩数据段均写入所述存储介质时,将所述存储介质中的压缩数据段分批读入所述内存,并进行归并,得到合并数据段;

解压模块,用于对所述合并数据段进行解压,获取排序数据;

排序数据写入模块,用于将所述排序数据写入所述存储介质。

结合第二方面,在第二方面的第一种可能实现方式中,所述数据读入模块包括:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310505217.3/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top