一种基于硬件的排序算法优化方法及其装置制造方法及图纸

技术编号:38010720 阅读:16 留言:0更新日期:2023-06-30 10:31
本发明专利技术公开了一种基于硬件的排序算法优化方法及其装置,所述方法包括以下步骤:获取多个待排序的序列信息;对多个序列信息进行归并排序,将序列信息中已排序的数据依次存入缓存器;把缓存器内的数据按序放回序列信息内,得到序列信息的排序结果。通过调整缓存器的大小,根据实际需求进行时间和空间的交换,有效地减少排序过程中的运算时间,保证排序算法的空间利用率,提高排序算法的灵活性。提高排序算法的灵活性。提高排序算法的灵活性。

【技术实现步骤摘要】
一种基于硬件的排序算法优化方法及其装置


[0001]本专利技术涉及排序算法
,尤其是一种基于硬件的排序算法优化方法及其装置。

技术介绍

[0002]数据处理的过程中会存在大量的映射表,这些映射表大部分存放在闪存里,同时,也有少量的映射表存放在缓存里。在数据处理过程中,对映射表做修改时,需要先把映射表从闪存读到缓存,再对映射表做修改。其中,对映射表的修改并不会立刻生效,而是会先缓存起来,攒够一定量后再一起进行修改。每一次修改对应的映射表都可以认为是随机的一个,如果按照这些修改进入缓存的顺序来对映射表进行修改,在需要修改的表不在缓存内的情况下,需要从闪存中进行读取。这种修改方式存在读取性能较差,对缓存的利用率低的问题。因此,需要把针对同一个映射表的修改进行排序处理,在对同一个映射表有多次修改的情况下,除了首次修改需要把映射表从闪存读到缓存之外,后续的修改都能直接从缓存中读取映射表。为了提高缓存的利用率,需要对映射表的修改进行高效、灵活的排序。现有的排序算法只能简单地采用冒泡排序、归并排序等方式,存在灵活性差的问题,无法根据实际需求进行时间和空间的交换。

技术实现思路

[0003]为解决上述问题,本专利技术的目的在于提供一种基于硬件的排序算法优化方法及其装置,通过调整缓存器的大小,根据实际需求进行时间和空间的交换,提高排序算法的灵活性。
[0004]本专利技术解决其问题所采用的技术方案是:第一方面,本申请实施例提供一种基于硬件的排序算法优化方法,所述方法包括:获取多个待排序的序列信息;对多个所述序列信息进行归并排序,将所述序列信息中已排序的数据依次存入缓存器;把所述缓存器内的数据按序放回所述序列信息内,得到所述序列信息的排序结果。
[0005]第二方面,本申请实施例提供一种基于硬件的排序算法优化装置,包括:获取模块,用于获取多个待排序的序列信息;存入模块,用于对所述序列信息进行归并排序,将所述序列信息中已排序的数据依次存入缓存器;排序模块,用于把所述缓存器内的数据按序放回所述序列信息内,得到所述序列信息的排序结果。
[0006]第三方面,本申请实施例提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的基于硬件的排序算法优化方法。
[0007]第四方面,本申请实施例提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的基于硬件的排序算法优化方法。
[0008]本申请实施例,通过获取多个待排序的序列信息;对多个序列信息进行归并排序,
将序列信息中已排序的数据依次存入缓存器;把缓存器内的数据按序放回序列信息内,得到序列信息的排序结果,通过调整缓存器的大小,根据实际需求进行时间和空间的交换,有效地减少排序过程中的运算时间,保证排序算法的空间利用率,提高排序算法的灵活性。
[0009]本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
[0010]图1为本专利技术实施例一种基于硬件的排序算法优化方法的流程图;图2为图1中步骤S2000的流程图;图3为图2中步骤S2300的流程图;图4为图3中步骤S2320的流程图;图5为图1中步骤S3000的流程图;图6为现有技术中归并排序算法的示例图;图7为现有技术中二路归并排序算法的示例图;图8为现有技术中原地二路归并排序算法的示例图;图9为本申请实施例一种基于硬件的排序算法优化方法的示例图;图10为图2中排序时间和缓存器的大小之间的关系图;图11为本专利技术实施例一种基于硬件的排序算法优化装置的结构图;图12是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
[0011]下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能理解为对本专利技术的限制。
[0012]在本专利技术的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。
[0013]在本专利技术的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
[0014]本专利技术的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属
技术人员可以结合技术方案的具体内容合理确定上述词语在本专利技术中的具体含义。
[0015]本专利技术实施例涉及的基于硬件的排序算法优化方法及其装置,是基于归并排序算法。其中,归并排序是指将两个或两个以上有序的数列(或有序表),合并成一个仍然有序的数列(或有序表)。归并排序的方法经常用于多个有序的数据文件归并成一个有序的数据文件。归并排序算法是创建在归并操作上的一种有效的排序算法,同时,归并排序算法是采用
分治法的一个非常典型的应用,且各层分治递归可以同时进行。归并排序思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。如图6所示,以一组无序数列{84,69,42,44,44,61,2,79,44,81,44,94,91,70,76,59}为例,图6为现有技术中归并排序算法的示例图,首先把一个未排序的序列从中间分割成2部分,再把2部分分成4部分,依次分割下去,直到分割成一个一个的数据,再把这些数据两两归并到一起,使之有序,不停的归并,最后成为一个排好序的序列。由此可见,在无序数列的数据数量为n的情况下,由于归并排序算法每次将序列折半分组,共需要logn轮,因此归并排序的时间复杂度为O(nlogn);归并排序算法排序过程中需要额外的一个序列去存储排序后的结果,所占空间是n,因此归并排序算法的空间复杂度为O(n)。然而,在实际应用中,O(n)的空间复杂度对硬件实现是难以接受的,因为这要求在芯片上额外增加一块与待排序数据大小相同的存储单元,大大地增大了芯片的尺寸,影响了芯片设计的灵活性。
[0016]具体地,图7为现有技术中二路归并排序算法的示例图。归并排序算法中的O(n)的空间复杂度源于二路归并,二路归并中合并后的序列需要存放在另外一块存储空间里,如图7所示,对于已经完成排序的两个数列{42,44,69,84}和{2,44,61,79},依次对比两个数列的首位数据的大小,并根据对比结果依次把数据存放在右边的存储空间里,其中,存储空间的大小等于数列的数据数量n。由于存储空间的大小与合并后的序列大小一致,因此,二路归并的时间复本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于硬件的排序算法优化方法,其特征在于,包括以下步骤:获取多个待排序的序列信息;对多个所述序列信息进行归并排序,将所述序列信息中已排序的数据依次存入缓存器;把所述缓存器内的数据按序放回所述序列信息内,得到所述序列信息的排序结果。2.根据权利要求1所述的一种基于硬件的排序算法优化方法,其特征在于,所述对多个所述序列信息进行归并排序,将所述序列信息中已排序的数据依次存入缓存器,包括:建立用于储存所述序列信息中已排序的数据的缓存器,其中,所述缓存器的大小根据所述序列信息的大小和所述序列信息的排序时间进行调整;对所述序列信息进行归并排序;将所述序列信息中已排序的数据依次存入所述缓存器。3.根据权利要求2所述的一种基于硬件的排序算法优化方法,其特征在于,所述将所述序列信息中已排序的数据依次存入所述缓存器,包括:在所述缓存器有空余空间的情况下,将所述序列信息中已排序的数据依次存入所述缓存器中;在所述缓存器已填满的情况下,把所述缓存器内的数据按序放回所述序列信息中。4.根据权利要求3所述的一种基于硬件的排序算法优化方法,其特征在于,所述把所述缓存器内的数据按序放回所述序列信息中之前,还包括:将所述序列信息中待排序的数据移动到所述序列信息的末端。5.根据权利要求1所述的一种基于硬件的排序算法优化方法,其特征在于,所述把所述缓存器内的数据按序放回所述序列信息内,得到所述序列信息的排序结果包括:在所述序列信息内...

【专利技术属性】
技术研发人员:伍思宁刘弋波赖鼐龚晖
申请(专利权)人:珠海妙存科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1