[发明专利]数据排序方法和装置在审
申请号: | 201310505217.3 | 申请日: | 2013-10-23 |
公开(公告)号: | CN103577559A | 公开(公告)日: | 2014-02-12 |
发明(设计)人: | 王传廷;刘辉军 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 黄厚刚 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 排序 方法 装置 | ||
技术领域
本发明涉及计算机领域,特别涉及一种数据排序方法和装置。
背景技术
排序是计算机内经常进行的一种操作,其目的是将一组“无序”的数据调整为“有序”的数据。现有技术通常通过外部排序来对数据进行处理,即将待排序的数据分批读入内存,在内存中采用内存排序方法分别对读入的待排序数据进行排序,得到初始合并段,将得到的初始合并段写入磁盘;当所有的初始合并段均写入磁盘后,每次从磁盘中读取多个初始合并段,将该多个初始合并段进行归并,得到中间合并段,将得到的中间合并段再次写入磁盘中,直到磁盘中所有的初始合并段被归并为中间合并段后,再每次从磁盘中读取多个中间合并段进行归并,经过多次归并后,得到一个有序数据。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
在对数据的进行排序的过程中,需要进行多次归并,且待排序的数据量越大,磁盘IO越大,排序耗时长,磁盘负担重。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种数据排序方法和装置。所述技术方案如下:
第一方面,提供了一种数据排序方法,所述方法包括:
将存储介质中的待排序数据分批读入内存,每读入一段数据,对所述读入的数据进行排序,得到有序数据段;
对所述有序数据段进行压缩,得到压缩数据段;
将每次压缩后得到的压缩数据段写入所述存储介质;
当所述待排序数据所对应的所有压缩数据段均写入所述存储介质时,将所述存储介质中的压缩数据段分批读入所述内存,并进行归并,得到合并数据段;
对所述合并数据段进行解压,获取排序数据;
将所述排序数据写入所述存储介质。
结合第一方面,在第一方面的第一种可能实现方式中,将存储介质中的待排序数据分批读入内存,每读入一段数据,对所述读入的数据进行排序,得到有序数据段包括:
将所述存储介质中的待排序数据分批读入所述内存;
每读入一段数据,使用预设内存排序算法,对所述读入的数据进行排序,得到所述有序数据段。
结合第一方面,在第一方面的第二种可能实现方式中,对所述有序数据段进行压缩,得到压缩数据段包括:
获取所述有序数据段中的数据以及每个数据在所述有序数据段中的出现次数;
根据所述有序数据段中的数据以及每个数据的出现次数,获取所述压缩数据段。
结合第一方面,在第一方面的第三种可能实现方式中,当所述待排序数据所对应的所有压缩数据段均写入所述存储介质时,将所述存储介质中的压缩数据段分批读入所述内存,并进行归并,得到合并数据段包括:
当所述待排序数据所对应的所有压缩数据段均写入所述存储介质时,将所述存储介质中的压缩数据段分批读入所述内存,每读入预设数目的压缩数据段,对所述预设数目的压缩数据段进行归并,得到中间数据段;
将所述中间数据段写入所述存储介质;
当所述待排序数据对应的所有中间数据段均写入所述存储介质时,将所述所有中间数据段分批读入所述内存,继续进行归并,直至得到所述合并数据段。
结合第一方面的第三种可能实现方式,在第一方面的第四种可能实现方式中,每读入预设数目的压缩数据段,对所述预设数目的压缩数据段进行归并,得到中间数据段包括:
获取所述预设数目的压缩数据段中的数据,以及每个数据在对应的压缩数据段中的出现次数;
获取每个数据的总出现次数,所述总出现次数为所述每个数据在对应的压缩数据段中的出现次数之和;
根据所述每个数据和所述每个数据的总出现次数,获取所述中间数据段。
第二方面,提供了一种数据排序装置,所述装置包括:
数据读入模块,用于将存储介质中的待排序数据分批读入内存,每读入一段数据,对所述读入的数据进行排序,得到有序数据段;
压缩模块,用于对所述有序数据段进行压缩,得到压缩数据段;
数据段写入模块,用于将每次压缩后得到的压缩数据段写入所述存储介质;
归并模块,用于当所述待排序数据所对应的所有压缩数据段均写入所述存储介质时,将所述存储介质中的压缩数据段分批读入所述内存,并进行归并,得到合并数据段;
解压模块,用于对所述合并数据段进行解压,获取排序数据;
排序数据写入模块,用于将所述排序数据写入所述存储介质。
结合第二方面,在第二方面的第一种可能实现方式中,所述数据读入模块包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310505217.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种冷轧薄板钝化剂
- 下一篇:一种石英容器镀碳膜的方法及装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置