【技术实现步骤摘要】
一种基于动态内存分配实现数据排序与合并的系统及方法
本专利技术涉及数据通讯
,尤其涉及一种基于动态内存分配实现数据排序与合并的系统及方法。
技术介绍
数据排序是按一定顺序将数据排列,以便研究者通过浏览数据发现一些明显的特征或趋势,找到解决问题的线索。除此之外,排序还有助于对数据检查纠错,以及为重新归类或分组等提供方便。在计算机领域主要使用数据排序方法根据占用内存的方式不同分为2大类:内部排序方法与外部排序方法。内部排序方法:若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。内排序的方法有许多种,按所用策略不同,可归纳为五类:插入排序、选择排序、交换排序、归并排序和基数排序。外部排序方法:外部排序基本上由两个相互独立的阶段组成。首先,按可用内存大小,将外存上含n个记录的文件分成若干长度为k的子文件或段(segment),依次读入内存并利用有效的内部排序方法对它们进行排序,并将排序后得到的有序子文件重新写入外存。通常称这些有序子文件为归并段或顺串;然后,对这些归并段进行逐趟归并,使归并段(有序子文件)逐渐由小到大,直至得到整个有序文件为止。传统的数据排序方式采用软件方式依次分块存储、并自上而下对相邻的两个序号依次比较,较大的序号下沉、较小的序号往上冒,或者采用堆排序方式等,查询时通过依次扫描方式,速度慢,浪费资源。
技术实现思路
本专利技术要解决的技术问题在于针对现有技术中的缺陷,提供一种基于动态内存分配实现数据排序与合并的系统及方法。本专利技术解决其技术 ...
【技术保护点】
1.一种基于动态内存分配实现数据排序与合并的系统,其特征在于,该系统包括:/n报文发送模块,用于发送报文并为报文写入控制信息;采用地址链表方式,为每个ID的报文分配一个控制信息段,该控制信息段的存储地址即为报文携带的ID号,其中每个控制信息包含置位信息、地址链表、首尾标志;/n报文存储模块,用于存储报文内容;解析接收到的乱序报文,获取报文携带的ID号和报文携带的长度,根据ID号和长度动态分配内存大小,分配报文存储地址首指针,根据长度自动分配存储地址尾指针;/n地址链表存储与查询模块,用于存储和查询报文的地址链表;在输入报文时将ID号的值作为报文存储模块的地址,存储内容为各地址链表的首尾指针;在输出报文时按ID号查询并读取首尾指针指示的报文;/n置位标志存储与查询模块,用于排序报文;为每个ID号分配置位信息,并将置位信息按序排列,根据最小ID号对置位信息进行置位,当所有ID号对应的报文均完成置位,表示排序完成,输出排序后的报文;/n首尾标志存储与查询模块,用于合并报文;在输入报文时解析接收报文的特定字段,获取首尾标志,首标志即构成报文的数据块的第一帧最小单元,尾标志即构成报文的数据块的最 ...
【技术特征摘要】
1.一种基于动态内存分配实现数据排序与合并的系统,其特征在于,该系统包括:
报文发送模块,用于发送报文并为报文写入控制信息;采用地址链表方式,为每个ID的报文分配一个控制信息段,该控制信息段的存储地址即为报文携带的ID号,其中每个控制信息包含置位信息、地址链表、首尾标志;
报文存储模块,用于存储报文内容;解析接收到的乱序报文,获取报文携带的ID号和报文携带的长度,根据ID号和长度动态分配内存大小,分配报文存储地址首指针,根据长度自动分配存储地址尾指针;
地址链表存储与查询模块,用于存储和查询报文的地址链表;在输入报文时将ID号的值作为报文存储模块的地址,存储内容为各地址链表的首尾指针;在输出报文时按ID号查询并读取首尾指针指示的报文;
置位标志存储与查询模块,用于排序报文;为每个ID号分配置位信息,并将置位信息按序排列,根据最小ID号对置位信息进行置位,当所有ID号对应的报文均完成置位,表示排序完成,输出排序后的报文;
首尾标志存储与查询模块,用于合并报文;在输入报文时解析接收报文的特定字段,获取首尾标志,首标志即构成报文的数据块的第一帧最小单元,尾标志即构成报文的数据块的最后一帧最小单元,并存储;输出报文时按ID号查询首尾标志,进行报文合并,并输出合并后的报文数据块。
2.根据权利要求1所述的基于动态内存分配实现数据排序与合并的系统,其特征在于,报文存储模块中乱序报文存储采用动态内存分配方式,根据乱序报文到达的时间顺序,划出一片连续的内存区域,按照报文到达时间进行存储,每个区域自动根据长度动态分配内存大小,实现内存动态分配。
3.根据权利要求1所述的基于动态内存分配实现数据排序与合并的系统,其特征在于,报文的ID号还包括采用ID号映射值的方式。
4.根据权利要求1所述的基于动态内存分配实现数据排序与合并的系统,其特征在于,置位标志存储与查询模块中置位信息的数据结构为:
该数据结构以行为单位按ID号进行存储及查询,每一行包括5个字节,第1和第2个字节内存放数据存储首指针,第3和第4个字节内存放数据存储尾指针,第5个字节内存储首尾标志和置位标志。
5.根据权利要求4所述的基于动态内存分配实现数据排序与合并的系统,其特征在于,首尾标志存储与查询模块中首尾标志的数据结构与置位标志的数据存储结构相同;
首尾标志的作用在于:报文传输过程中受传输载体带宽限制,将报文在传输前被切割成满足传输载体带宽的报文;原长度为N字节的报文,被裁切成m个N/m字节的报文,则第1个N/m字节的报文其首标志被置位,第m个N/m字节的报文其尾标志被置位;...
【专利技术属性】
技术研发人员:邓政,陈伯芳,詹万鹏,危必波,郑容,刘望,朱瑞霖,汪加宏,沈永进,尹健,曾凡丽,
申请(专利权)人:武汉中元华电科技股份有限公司,
类型:发明
国别省市:湖北;42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。