CN111651137A - 排序方法、装置、电子装置以及计算机设备 - Google Patents
排序方法、装置、电子装置以及计算机设备 Download PDFInfo
- Publication number
- CN111651137A CN111651137A CN202010474794.0A CN202010474794A CN111651137A CN 111651137 A CN111651137 A CN 111651137A CN 202010474794 A CN202010474794 A CN 202010474794A CN 111651137 A CN111651137 A CN 111651137A
- Authority
- CN
- China
- Prior art keywords
- data
- ordered sequence
- ordered
- sequence
- groups
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012163 sequencing technique Methods 0.000 claims abstract description 20
- 238000004590 computer program Methods 0.000 claims description 8
- 239000002131 composite material Substances 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Processing (AREA)
Abstract
本申请实施例提供了一种排序方法、装置、电子装置以及计算机设备。该方法包括:接收并行输入的至少两个数据;对至少两个数据进行排序,得到第一有序序列;将第一有序序列所包括的数据与第二有序序列所包括的数据进行比较,并基于比较结果确定第三有序序列。本申请实施例提供的技术方案,由于并行输入的多个数据的大小顺序明确,后续将其与第二有序序列进行比较时,无需逐个比较,因此可以简化逻辑运算,提升排序效率。
Description
技术领域
本申请实施例涉及数据处理技术领域,特别涉及一种排序方法、装置、电子装置以及计算机设备。
背景技术
冒泡排序是一种简单的排序算法,它重复走访过要排序的原数列,依次比较两个相邻的元素,若顺序错误则将二者交换。
相关技术中,当并行输入多个数据时,若需要将上述多个数据与已有的有序序列进行排序,则将上述多个数据依次与已有有序序列所包括的各个元素进行比较,得到最终的排序结果。
发明内容
本申请实施例提供一种排序方法、装置、电子装置以及计算机设备。所述技术方案如下:
一方面,本申请实施例提供一种排序方法,所述方法包括:
接收并行输入的至少两个数据;
对所述至少两个数据进行排序,得到第一有序序列;
将所述第一有序序列所包括的数据与第二有序序列所包括的数据进行比较,并基于比较结果,确定第三有序序列,其中,所述第二有序序列中的数据基于数值的大小进行排序,所述第三有序序列包括所述第一有序序列中的数据,和/或,所述第二有序序列中的数据。
另一方面,本申请实施例提供了一种排序装置,所述装置包括:
数据接收模块,用于接收并行输入的至少两个数据;
第一排序模块,用于对所述至少两个数据进行排序,得到第一有序序列;
第二排序模块,用于将所述第一有序序列所包括的数据与第二有序序列所包括的数据进行比较,并基于比较结果,确定第三有序序列;
其中,所述第二有序序列中的数据基于数值的大小进行排序,所述第三有序序列包括所述第一有序序列中的数据,和/或,所述第二有序序列中的数据。
又一方面,本申请实施例提供一种电子装置,所述电子装置包括:中央控制模块;
所述中央控制模块用于实现如一方面所述的排序方法。
再一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器、与所述处理器相连的存储器和如上所述的电子装置。
再一方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如一方面所述的排序方法。
再一方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如一方面所述的排序方法。
再一方面,本申请实施例提供一种计算机程序产品,当所述计算机程序产品被执行时,用于实现如一方面所述的排序方法。
本申请实施例提供的技术方案可以带来的有益效果至少包括:
通过先对并行输入的多个数据进行排序,得到第一有序序列,之后将第一有序序列与第二有序序列进行比较,得到第三有序序列,相比于相关技术中将并行输入的多个数据依次与第二有序序列进行比较,本申请实施例提供的技术方案,由于并行输入的多个数据的大小顺序明确,后续将其与第二有序序列进行比较时,无需逐个比较,因此可以简化逻辑运算,提升排序效率。
附图说明
图1是本申请一个示例性实施例示出的排序方法的流程图;
图2是本申请另一个示例性实施例示出的排序方法的流程图;
图3是本申请另一个示例性实施例示出的排序方法的流程图;
图4是本申请另一个示例性实施例示出的排序方法的流程图;
图5是本申请一个实施例示出的寄存器移位的示意图;
图6是本申请一个示例性实施例示出的排序的示意图;
图7是本申请另一个示例性实施例示出的排序的示意图;
图8是本申请另一个示例性实施例示出的排序的示意图;
图9是本申请一个示例性实施例示出的排序装置的框图;
图10是本申请一个示例性实施例示出的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
相关技术中,将并行输入的多个数据依次与已有有序序列所包括的各个元素依次进行比较,该过程较为繁琐,排序效率较低。
基于此,本申请实施例提供一种排序方法,通过先对并行输入的多个数据进行排序,得到第一有序序列,之后将第一有序序列与第二有序序列进行比较,得到第三有序序列,相比于相关技术中将并行输入的多个数据依次与第二有序序列进行比较,本申请实施例提供的技术方案,由于并行输入的多个数据的大小顺序明确,后续将其与第二有序序列进行比较时,无需逐个比较,因此可以简化逻辑运算,提升排序效率。
本申请实施例提供的技术方案,各步骤的执行主体可以是计算机设备,也可以是计算机设备中的芯片,本申请实施例对此不作限定。再本申请实施例中,仅以各步骤的执行主体为计算机设备为例进行说明。
请参考图1,其示出了本申请一个实施例提供的排序方法的流程图。在该实施例中,计算机设备将并行输入多个数据下的冒泡排序划分两步。
第一步:对并行输入的多个数据进行多点比较排序。
第二步:对第一步输出的排序结果以及已有有序序列进行插值排序。
在通信系统或图像处理系统中,通常存在如下场景:对已有有序序列进行冒泡排序,并求取排在前N位的最大值或最小值的序列。上述场景下的数据排序为二级流水运算。下面将结合图2对该场景下的排序方法进行讲解。
在图2中,寄存器存储有第二有序序列,该第二有序序列是已有有序序列排在前N位的最大值或最小值,当并行输入多个数据时,计算机设备对输入的多个数据进行多点比较排序,得到第一有序序列(第一级流水运算),之后将第一有序序列与第二有序序列进行差值排序,得到第三有序序列,并将第三有序序列写入寄存器中(第二级流水运算)。
请参考图3,其示出了本申请一个实施例提供的排序方法的流程图。该方法包括如下步骤:
步骤301,接收并行输入的至少两个数据。
并行输入是并行通信的一种输入方式,一般是指将一串数据同时输入目的寄存器。并行输入的数据的数量根据实际需求设定,例如并行输入的数据的数量为4、6、9等等。
步骤302,对至少两个数据进行排序,得到第一有序序列。
计算机设备将并行输入的至少两个数据按照由大到小的顺序或者由小到大的顺序进行排序,得到第一有序序列,第一有序序列的序列长度也即是并行输入的数据的数量。
步骤303,将第一有序序列所包括的数据与第二有序序列所包括的数据进行比较,并基于比较结果确定第三有序序列。
第二有序序列中的数据基于数值的大小进行排序。其中,排序顺序是由大到小的顺序,或者,排序顺序是由小到大的顺序。第二有序序列中的数据与第一有序序列中的数据的数据类型相同。第三有序序列包括第一有序序列中的数据,和/或,第二有序序列中的数据。第三有序序列中的数据与第一有序序列中的数据的数据类型也相同。
在一些实施例中,第三有序序列的序列长度为第一有序序列的序列长度和第二有序序列的序列长度之和。在一些实施例中,第三有序序列的序列长度等于第二有序序列的序列长度。
在本申请实施例中,计算机设备先对并行输入的至少两个数据进行排序,得到第一有序序列,之后将第一有序序列所包括的数据与第二有序序列所包括的数据进行比较,得到第三有序序列,在并行输入的至少两个数据的大小顺序明确的情况下,将其与第二有序序列进行比较,可以简化逻辑运算,提升排序效率。
示例性地,将并行输入的数据的最大值与第二有序序列的最小值进行比较,若并行输入的数据的最大值小于第二有序序列的最小值,则可以确定第三有序序列。例如,第一有序序列为3、5、7,第二有序序列为8、9、10、11,第一有序序列的最大值小于第二有序序列的最小值,即可确定第三有序序列为3、5、7、8、9、10、11,也即仅需一次比较运算即可确定第三有序序列。
示例性地,将并行输入的数据的最小值与第二有序序列的最大值进行比较,若并行输入的数据的最小值大于第二有序序列的最小值,则可以确定第三有序序列。
综上所述,本申请实施提供的技术方案,通过先对并行输入的多个数据进行排序,得到第一有序序列,之后将第一有序序列与第二有序序列进行比较,得到第三有序序列,相比于相关技术中将并行输入的多个数据依次与第二有序序列进行比较,本申请实施例提供的技术方案,由于并行输入的多个数据的大小顺序明确,后续将其与第二有序序列进行比较时,无需逐个比较,因此可以简化逻辑运算,提升排序效率。
请参考图4,其示出了本申请一个实施例提供的排序方法的流程图。该方法包括如下步骤:
步骤401,接收并行输入的至少两个数据。
步骤402,对至少两个数据进行排序,得到第一有序序列。
结合参考图5,第一有序序列为Y0、Y1、Y2、Y3,且Y0>Y1>Y2>Y3。
步骤403,将第一有序序列所包括的数据与第二有序序列所包括的数据进行比较,得到第一排序结果。
可选地,计算机设备从寄存器中读取第二有序序列。在本申请实施例中,第二有序序列的序列长度根据寄存器的位数实际确定。第一排序结果的序列长度是第一有序序列的序列长度与第二有序序列的序列长度之和。
在通信系统或图像处理系统中,存在如下需求:对已有有序序列进行冒泡排序,并求取排在前N位的最大值或最小值的序列。当并行输入多个数据时,需要对已有有序序列进行更新。在本申请实施例中,第二有序序列可以是更新前的已有有序序列排在前N位的最大值或最小值。
结合参考图5,寄存器的位数位8,分别为R0、R1、R2、R3、R4、R5、R6、R7,R0位置为N0、R1位置为N1、R2位置为N2、R3位置为N3、R4位置为N4、R5位置为N5、R6位置为N6、R7位置为N7,且N0>N1>N2>N3>N4>N5>N6>N7。
步骤404,按照指定顺序从第一排序结果中获取m个数据,得到第三有序序列。
指定顺序是按照排列顺序由前到后的顺序,或者,排列顺序是按照排列顺序由后到前的顺序。m为小于第一有序序列和第二有序序列的序列长度之和的正整数。在一些实施例中,计算机设备通过移位思想分析寄存器的各个位置的候选值(也即提取m个数据),由于比较的序列均为有序序列,因此在候选值的有效条件上会存在复用和简化,简化了逻辑运算。
可选地,计算机设备在获取第三有序序列之后,将寄存器中的第二有序序列更新为第三有序序列。在一种可能地实现方式中,计算机设备将第三有序序列写入寄存器中;在另一种可能地实现方式中,计算机设备对寄存器进行移位操作,之后更新寄存器的剩余位置处的数据。结合参考图5,若第一有序序列的最小值Y3大于第二有序序列的最大值N0,则对寄存器进行移位,最终R0位置为Y0、R1位置为Y1、R2位置为Y2、R3位置为Y3、R4位置为N0、R5位置为N1、R6位置为N2、R7位置为N3,且Y0>N1>Y2>Y3>N0>N1>N2>N3。
综上所述,本申请实施提供的技术方案,通过先对并行输入的多个数据进行排序,得到第一有序序列,之后将第一有序序列与第二有序序列进行比较,得到第三有序序列,由于并行输入的多个数据的大小顺序明确,后续将其与第二有序序列进行比较时无需逐个比较,因此可以简化逻辑运算,提升排序效率。
下面对并行输入的至少两个数据的排序过程进行介绍。
在一些实施例中,在基于图3或图4所示实施例提供的一个可选实施例中,步骤302或步骤402可以替换实现为如下子步骤:
步骤3021,当并行输入的数据数量为合数时,将至少两个数据分为p组,p组数据中的每组数据包括q个数据。
p为大于1、且小于或等于n的整数,q为大于1且小于或等于n的整数。
合数是指在大于1的整数中除了能被1和本身整除外,还能被其他数(0除外)整除的数。并行输入的数据数量为合数也即并行输入的至少两个数据允许被均匀分组,允许被分成数据量相同的多组数据。也即,并行输入的数据数量可以拆分为p*q。例如,并行输入的数据数量为4,则并行输入的数据可以分为2组,每组包括2个数据。再例如,并行输入的数据数量为9,则并行输入的数据可以分为3组,每组包括3个数据。
步骤3022,对p组数据分别进行大小比较,得到p组有序子序列。
计算机设备对划分出的每组数据进行组内比较,得到每组数据对应的有序子序列。
结合参考图6,其示出了本申请一个实施例提供的排序的示意图。计算机设备将4个数据分为2组,每组包括2个数据,之后对上述两组数据进行组内比较,较大的值记为max,较小的值记为min。
结合参考图7,其示出了本申请一个实施例提供的排序的示意图。计算机设备将6个数据分为2组,每组包括3个数据,之后对上述两组数据进行组内比较,较大的值记为max,较小的值记为min,介于两者之间的记为mid。
结合参考图8,其示出了本申请一个实施例提供的排序的示意图。计算机设备将9个数据分为3组,每组包括3个数据,之后对上述两组数据进行组内比较,较大的值记为max,较小的值记为min,介于两者之间的记为mid。
步骤3023,将p组有序子序列中的每组有序子序列所包括的第i个数据进行比较,得到第一有序序列,i为小于或等于q的正整数。
计算机设备对p组数据分别进行组内比较得到p组有序子序列之后,进行纵向比较。具体地,计算机设备将每组有序子序列中相应位置处的各个数据进行比较,得到第一有序序列。示例性地,计算机设备将每组有序子序列中排在第一位的各个数据进行比较,得到第一有序序列。
结合参考图6,计算机设备将第一组中的max与第二组中的max进行比较,较大的值记为max_max,较小的值记为max_min;将第一组中的min与第二组中的min进行比较,较大的值记为min_max,较小的值记为min_min。
结合参考图7,将第一组中的max与第二组中的max进行比较,较大的值记为max_max,较小的值记为max_min;将第一组中的mid与第二组中的mid进行比较,较大的值记为mid_max,较小的值记为mid_min;将第一组中的min与第二组中的min进行比较,较大的值记为min_max,较小的值记为min_min。
结合参考图8,将第一组中的max、第二组中的max与第三组中的max进行比较,较大的值记为max_max,较小的值记为max_min,介于二者之间的记为max_mid;将第一组中的mid、第二组中的mid与第三组中的mid进行比较,较大的值记为mid_max,较小的值记为mid_min,介于二者之间的记为mid_mid;将第一组中的min、第二组中的min与第三组中的min进行比较,较大的值记为min_max,较小的值记为min_min,介于二者之间的记为min_mid。
在一些实施例中,在基于图3或图4所示实施例提供的一个可选实施例中,步骤302或步骤402还可以替换实现为如下子步骤:
步骤3024,当并行输入的数据数量为质数时,增加至少一个数据。
质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。并行输入的数据数量为质数,也即并行输入的数据不允许被均匀分组,不允许被分成数据量相同的多组数据。也即,并行输入的数据数量不可以拆分为p*q。当增加至少一个数据后,并行输入的数据与新增的数据的数量之和为合数,假设并行输入的数据数量为n,新增的数据数量为k,也即n+k为合数,n+k个数据允许被均匀分组允许被分成数据量相同的多组数据。也即,n+k可以拆分为p*q。
在一些实施例中,k是使n+k被拆分为p*q中的最小值,通过上述方式,可以减小对n+k个数据进行排序的复杂度,增加排序效率。例如,n为3时,k可以是1,也可以是3,还可以是6。在本申请实施例中,若n为3,则k为1。
在一些实施例中,k个数据的取值可以根据实际需求设定。例如,k个数据为小于n个数据中的最小值的数据,或者,k个数据为大于n个数据中的最大值的数据。
步骤3025,将并行输入的数据与所述增加的数据的组合分为p组,p组数据中的每组数据包括q个数据。
p为大于1、且小于或等于n的整数,q为大于1且小于或等于n的整数。步骤3025的解释说明可以参考步骤3021,此处不作赘述。
步骤3026,对p组数据分别进行大小比较,得到p组有序子序列。
步骤3026的解释说明可以参考步骤3022,此处不作赘述。
步骤3027,将p组有序子序列中的每组有序子序列所包括的第i个数据进行比较,得到第二排序结果。
i为小于或等于q的正整数。步骤3027的解释说明可以参考步骤3023,此处不作赘述。
步骤3028,从第二排序结果中去除增加的数据,得到第一有序序列。
在本申请实施例中,增加k个数据仅为了便于分组比较与纵向比较,在完成n+k个数据的排序后,需要将上述新增的k个数据去除,得到第一有序序列。
在一个具体的例子中,n个数据分别为7、2、4,计算机设备新增1个数据,该数据的值为1,之后将其划分为2组,第一组为1、7,第二组为2、4,第一组中的min为1、max为7,第二组中的min为2、max为4,之后进行纵向比较,得到min_min为1、min_max为2、max_min为4、max_max为7,则第二排序结果为1、2、4、7,此时去除新增的数据1,得到第一有序序列为2、4、7。
综上所述,本申请实施例提供的技术方案,通过将并行输入地数据先进行分组排序,再进行纵向排序,可以提高对并行输入的数据进行排序的排序效率。此外,当并行输入的数据数量为质数时,增加若干个数据,并对并行输入的数据与新增的数据先进行分组排序,再进行纵向排序,得到排序结果后再将新增的数据去除,得到第一有序序列,可以提升排序效率。
以下为本申请装置实施例,对于装置实施例中未详细阐述的部分,可以参考上述方法实施例中公开的技术细节。
请参考图9,其示出了本申请一个示例性实施例提供的排序装置的框图。该排序装置可以通过软件、硬件或者两者的组合实现成为终端的全部或一部分。
该排序装置包括:
数据接收模块901,用于接收并行输入的至少两个数据。
第一排序模块902,用于对所述至少两个数据进行排序,得到第一有序序列。
第二排序模块903,用于将所述第一有序序列所包括的数据与第二有序序列所包括的数据进行比较,并基于比较结果,确定第三有序序列;
其中,所述第二有序序列中的数据基于数值的大小进行排序,所述第三有序序列包括所述第一有序序列中的数据,和/或,所述第二有序序列中的数据。
综上所述,本申请实施例提供的技术方案,通过先对并行输入的n个数据进行排序,得到第一有序序列,之后将第一有序序列与第二有序序列进行比较,得到第三有序序列,由于并行输入的n个数据的大小顺序明确,将其与第二有序序列进行比较时,无需逐个比较,因此可以简化逻辑运算,提升排序效率。
在基于图9所述实施例提供的一个可选实施例中,
所述第二排序模块903,用于:
将所述第一有序序列所包括的数据与所述第二有序序列所包括的数据进行比较,得到第一排序结果;
按照指定顺序在所述第一排序结果中获取m个数据,得到所述第三有序序列,所述m为小于所述第一有序序列和所述第二有序序列的序列长度之和的正整数。
可选地,所述第二排序模块903,用于将所述第一有序序列的最大值按照第一预设顺序与所述第二有序序列包括的各个数据依次比较,得到所述第一排序结果;其中,所述第一预设顺序是指由小到大的顺序。
可选地,所述第二排序模块903,用于将所述第一有序序列的最小值按照第二预设顺序与所述第二有序序列包括的各个数据依次比较,得到所述第一排序结果;其中,所述第二预设顺序是指由大到小的顺序。
在基于图9所示实施例提供的一个可选实施例中,所述第一排序模块902,用于:
当并行输入的数据数量为合数时,将所述至少两个数据分为p组,所述p组数据中的每组数据包括q个数据,所述p为大于1、且小于或等于所述n的整数,所述q为大于1且小于或等于所述n的整数;
对所述p组数据分别进行大小比较,得到p组有序子序列;
将所述p组有序子序列中的每组有序子序列所包括的第i个数据进行比较,得到所述第一有序序列,所述i为小于或等于q的正整数。
在基于图9所示实施例提供的一个可选实施例中,所述第一排序模块902,用于:
当并行输入的数据数量为质数时,增加至少一个数据,增加的所述数据与并行输入的所述数据的数据类型相同;
将所述并行输入的数据与所述增加的数据的组合分为p组,所述p组数据中的每组数据包括q个数据,所述p为大于1、且小于或等于所述n的整数,所述q为大于1且小于或等于所述n的整数;
对所述p组数据分别进行大小比较,得到p组有序子序列;
将所述p组有序子序列中的每组有序子序列所包括的第i个数据进行比较,得到第二排序结果,所述i为小于或等于q的正整数;
从所述第二排序结果中去除增加的所述数据,得到所述第一有序序列。
需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在示例性实施例中,还提供了一种电子装置,所述电子装置包括中央控制模块,所述中央控制模块用于执行以实现图3所示实施例,图4实施例,以及基于图3或图4所示实施例的可选实施例。
在示例性实施例中,还提供了一种计算机设备,该计算机设备包括如上文实施例所示的电子装置。
参考图10,其示出了本申请一个示例性实施例提供的计算机设备的结构方框图。本申请中的计算机设备可以包括一个或多个如下部件:处理器1010和存储器1020。
处理器1010可以包括一个或者多个处理核心。处理器1010利用各种接口和线路连接整个计算机设备内的各个部分,通过运行或执行存储在存储器1020内的指令、程序、代码集或指令集,以及调用存储在存储器1020内的数据,执行计算机设备的各种功能和处理数据。可选地,处理器1010可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器1010可集成中央处理器(CentralProcessing Unit,CPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统和应用程序等;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1010中,单独通过一块芯片进行实现。
可选地,处理器1010执行存储器1020中的程序指令时实现下上述各个方法实施例提供的排序方法。
存储器1020可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选地,该存储器1020包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1020可用于存储指令、程序、代码、代码集或指令集。存储器1020可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令、用于实现上述各个方法实施例的指令等;存储数据区可存储根据计算机设备的使用所创建的数据等。
上述计算机设备的结构仅是示意性的,在实际实现时,计算机设备可以包括更多或更少的组件,比如:摄像头等,本实施例对此不作限定。
本领域技术人员可以理解,图10中示出的结构并不构成对计算机设备1000的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述至少一条指令由计算机设备的处理器加载并执行以实现上述方法实施例中的排序方法。
可选地,上述计算机可读存储介质可以是ROM、RAM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述方法实施例中提供的排序方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本文中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种排序方法,其特征在于,所述方法包括:
接收并行输入的至少两个数据;
对所述至少两个数据进行排序,得到第一有序序列;
将所述第一有序序列所包括的数据与第二有序序列所包括的数据进行比较,并基于比较结果确定第三有序序列,其中,所述第二有序序列中的数据基于数值的大小进行排序,所述第三有序序列包括所述第一有序序列中的数据,和/或,所述第二有序序列中的数据。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一有序序列所包括的数据与第二有序序列所包括的数据进行比较,并基于比较结果确定第三有序序列,包括:
将所述第一有序序列所包括的数据与所述第二有序序列所包括的数据进行比较,得到第一排序结果;
按照指定顺序在所述第一排序结果中获取m个数据,得到所述第三有序序列,所述m为小于所述第一有序序列和所述第二有序序列的序列长度之和的正整数。
3.根据权利要求2所述的方法,其特征在于,所述将所述第一有序序列所包括的数据与所述第二有序序列所包括的数据进行比较,得到第一排序结果,包括:
将所述第一有序序列的最大值按照第一预设顺序与所述第二有序序列包括的各个数据依次比较,得到所述第一排序结果;其中,所述第一预设顺序是指由小到大的顺序。
4.根据权利要求2所述的方法,其特征在于,所述将所述第一有序序列所包括的数据与所述第二有序序列所包括的数据进行比较,得到第一排序结果,包括:
将所述第一有序序列的最小值按照第二预设顺序与所述第二有序序列包括的各个数据依次比较,得到所述第一排序结果;其中,所述第二预设顺序是指由大到小的顺序。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述对所述至少两个数据进行排序,得到第一有序序列,包括:
当并行输入的数据数量为合数时,将所述至少两个数据分为p组,所述p组数据中的每组数据包括q个数据,所述p为大于1、且小于或等于所述n的整数,所述q为大于1且小于或等于所述n的整数;
对所述p组数据分别进行大小比较,得到p组有序子序列;
将所述p组有序子序列中的每组有序子序列所包括的第i个数据进行比较,得到所述第一有序序列,所述i为小于或等于q的正整数。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述对所述n个数据进行排序,得到第一有序序列,包括:
当并行输入的数据数量为质数时,增加至少一个数据,增加的所述数据与并行输入的所述数据的数据类型相同;
将所述并行输入的数据与所述增加的数据的组合分为p组,所述p组数据中的每组数据包括q个数据,所述p为大于1、且小于或等于所述n的整数,所述q为大于1且小于或等于所述n的整数;
对所述p组数据分别进行大小比较,得到p组有序子序列;
将所述p组有序子序列中的每组有序子序列所包括的第i个数据进行比较,得到第二排序结果,所述i为小于或等于q的正整数;
从所述第二排序结果中去除增加的所述数据,得到所述第一有序序列。
7.一种排序装置,其特征在于,所述装置包括:
数据接收模块,用于接收并行输入的至少两个数据;
第一排序模块,用于对所述至少两个数据进行排序,得到第一有序序列;
第二排序模块,用于将所述第一有序序列所包括的数据与第二有序序列所包括的数据进行比较,并基于比较结果,确定第三有序序列;
其中,所述第二有序序列中的数据基于数值的大小进行排序,所述第三有序序列包括所述第一有序序列中的数据,和/或,所述第二有序序列中的数据。
8.一种电子装置,其特征在于,所述电子装置包括:中央控制模块;
所述中央控制模块用于实现如权利要求1至6任一所述的排序方法。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器、与所述处理器相连的存储器和如权利要求8所述的电子装置。
10.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至6任一所述的排序方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至6任一所述的排序方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010474794.0A CN111651137B (zh) | 2020-05-29 | 2020-05-29 | 排序方法、装置、电子装置以及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010474794.0A CN111651137B (zh) | 2020-05-29 | 2020-05-29 | 排序方法、装置、电子装置以及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111651137A true CN111651137A (zh) | 2020-09-11 |
CN111651137B CN111651137B (zh) | 2023-12-05 |
Family
ID=72344723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010474794.0A Active CN111651137B (zh) | 2020-05-29 | 2020-05-29 | 排序方法、装置、电子装置以及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111651137B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199407A (zh) * | 2020-10-12 | 2021-01-08 | 上海达梦数据库有限公司 | 一种数据分组排序方法、装置、设备及存储介质 |
CN112286456A (zh) * | 2020-10-27 | 2021-01-29 | 清华大学 | 存储方法及装置 |
CN112861145A (zh) * | 2021-01-06 | 2021-05-28 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5613085A (en) * | 1994-12-27 | 1997-03-18 | International Business Machines Corporation | System for parallel striping of multiple ordered data strings onto a multi-unit DASD array for improved read and write parallelism |
CN103530084A (zh) * | 2013-09-26 | 2014-01-22 | 北京奇虎科技有限公司 | 一种数据并行排序方法和系统 |
CN105045600A (zh) * | 2015-08-13 | 2015-11-11 | 电子科技大学 | 一种多组有序序列的并行排序方法 |
CN109426484A (zh) * | 2017-08-28 | 2019-03-05 | 华为技术有限公司 | 一种数据排序装置、方法及芯片 |
US20190377547A1 (en) * | 2018-06-06 | 2019-12-12 | Sap Se | Data grouping for efficient parallel processing |
US20200073633A1 (en) * | 2018-08-31 | 2020-03-05 | International Business Machines Corporation | Parallel sort accelerator sharing first level processor cache |
-
2020
- 2020-05-29 CN CN202010474794.0A patent/CN111651137B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5613085A (en) * | 1994-12-27 | 1997-03-18 | International Business Machines Corporation | System for parallel striping of multiple ordered data strings onto a multi-unit DASD array for improved read and write parallelism |
CN103530084A (zh) * | 2013-09-26 | 2014-01-22 | 北京奇虎科技有限公司 | 一种数据并行排序方法和系统 |
CN105045600A (zh) * | 2015-08-13 | 2015-11-11 | 电子科技大学 | 一种多组有序序列的并行排序方法 |
CN109426484A (zh) * | 2017-08-28 | 2019-03-05 | 华为技术有限公司 | 一种数据排序装置、方法及芯片 |
US20190377547A1 (en) * | 2018-06-06 | 2019-12-12 | Sap Se | Data grouping for efficient parallel processing |
US20200073633A1 (en) * | 2018-08-31 | 2020-03-05 | International Business Machines Corporation | Parallel sort accelerator sharing first level processor cache |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199407A (zh) * | 2020-10-12 | 2021-01-08 | 上海达梦数据库有限公司 | 一种数据分组排序方法、装置、设备及存储介质 |
CN112199407B (zh) * | 2020-10-12 | 2023-10-27 | 上海达梦数据库有限公司 | 一种数据分组排序方法、装置、设备及存储介质 |
CN112286456A (zh) * | 2020-10-27 | 2021-01-29 | 清华大学 | 存储方法及装置 |
CN112286456B (zh) * | 2020-10-27 | 2022-03-08 | 清华大学 | 存储方法及装置 |
CN112861145A (zh) * | 2021-01-06 | 2021-05-28 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN112861145B (zh) * | 2021-01-06 | 2023-12-12 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111651137B (zh) | 2023-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111651137B (zh) | 排序方法、装置、电子装置以及计算机设备 | |
US20200334533A1 (en) | Methods and systems for data analysis in a state machine | |
US9836283B2 (en) | Compiler architecture for programmable application specific integrated circuit based network devices | |
CN105051679A (zh) | 用于支持矢量排序算法和其他算法的具有树状结构的功能单元 | |
CN111338695A (zh) | 基于流水线技术的数据处理方法及相关产品 | |
US5586125A (en) | Method for generating test vectors for characterizing and verifying the operation of integrated circuits | |
CN108875914B (zh) | 对神经网络数据进行预处理和后处理的方法和装置 | |
CN113672369A (zh) | 用于验证有向无环图的环的方法及装置、电子设备、存储介质 | |
CN112434031A (zh) | 一种基于信息熵的不确定高效用模式挖掘方法 | |
JP4310500B2 (ja) | 重要成分優先計算方式ならびに装置 | |
CN110825453A (zh) | 基于大数据平台的数据处理方法及装置 | |
CN115208954B (zh) | 用于分布式数据处理系统的并行策略预置系统及其方法 | |
CN108846672B (zh) | 个性化地址生成方法、装置、电子设备及存储介质 | |
CN111404558B (zh) | 一种Polar码译码的方法、译码器及计算机存储介质 | |
CN112509073A (zh) | 图像压缩感知方法、装置、电子设备及存储介质 | |
CN113221501A (zh) | 用于平衡电路不同划分间互联数的方法及可读存储介质 | |
CN113190497B (zh) | 一种可重构处理器的任务处理方法及可重构处理器 | |
CN117951315B (zh) | 一种代码依赖的检索方法 | |
CN115250231B (zh) | 应用配置方法及装置 | |
CN117707587B (zh) | 分布式存储集群并发升级方法、装置、服务器及存储介质 | |
CN110968454B (zh) | 确定已丢失数据块的恢复数据的方法和装置 | |
CN110780840A (zh) | 多路排序器的实现方法及系统 | |
CN115550254A (zh) | 决策图的切分方法和切分装置 | |
CN115562618A (zh) | 一种基于硬件的数据排位方法、系统、设备及存储介质 | |
CN118520027A (zh) | 数据排序方法、设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |