CN110442619A - 搜索结果排序方法、装置、电子设备及存储介质 - Google Patents
搜索结果排序方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110442619A CN110442619A CN201910691824.0A CN201910691824A CN110442619A CN 110442619 A CN110442619 A CN 110442619A CN 201910691824 A CN201910691824 A CN 201910691824A CN 110442619 A CN110442619 A CN 110442619A
- Authority
- CN
- China
- Prior art keywords
- sequence
- array
- preset
- data word
- minor sort
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种搜索结果排序方法、装置、电子设备及存储介质,涉及数据处理技术领域。该方法包括:获取搜索结果对应的待排序序列,以及当次排序对应的中间值、最大值和最小值;根据所述当次排序对应的中间值、最大值和最小值,按照预设规则对所述待排序序列中的待排序数字进行排序,并将排序后的数字写入对应的预设数组中;其中,所述预设数组包括:第一有序数组、第一无序数组、第二有序数组、第二无序数组;若所述预设数组满足预设要求,则从所述预设数组中输出预设长度的序列。相对于现有技术,解决了现有技术中对返回的所有分片的结果重新计算、排序,产生大量的不必要的计算开销,导致计算周期较长的问题。
Description
技术领域
本公开涉及数据处理领域,具体而言,涉及一种搜索结果排序方法、装置、电子设备及存储介质。
背景技术
ES(Elasticsearch)是一种分布式的搜索引擎,要求返回的搜索结果需要按照确定的排序逻辑进行排序。由于数据分布在多个分片上,为了获取正确的排序结果,ES将搜索分为请求(query)和获取(fetch)两个阶段。
现有技术中,请求阶段同时对多个分片发起搜索请求,获取返回值,获取阶段对返回的所有分片的结果重新计算、排序。其中,每个分片满足条件的结果可能远远超过实际需要的数据条数。但ES实际上不关注目标数据量外的其他数据的排序,甚至获取的数据记录也不需要进行排序。
可见,采用现有技术的话,每个分片需要对所有搜索结果计算、排序,会产生大量的不必要的计算开销,导致计算周期较长。
发明内容
本公开的目的在于,针对上述现有技术中的不足,提供一种搜索结果排序方法、装置、电子设备及存储介质,以解决现有技术中每个分片计算开销大、计算周期长的问题。
为实现上述目的,本公开实施例采用的技术方案如下:
第一方面,本公开提供了一种搜索结果排序方法,包括:
获取搜索结果对应的待排序序列,以及当次排序对应的中间值、最大值和最小值;
根据所述当次排序对应的中间值、最大值和最小值,按照预设规则对所述待排序序列中的待排序数字进行排序,并将排序后的数字写入对应的预设数组中;其中,所述预设数组包括:第一有序数组、第一无序数组、第二有序数组、第二无序数组;
若所述预设数组满足预设要求,则从所述预设数组中输出预设长度的序列。
进一步地,所述获取搜索结果对应的待排序序列,以及当次排序对应的中间值、最大值和最小值,包括:
获取当次排序对应的最大值和最小值;
若当次排序为非首次排序,根据所述当次排序对应的最大值和最小值以及预设算法、预设调节参数,计算获取当次排序对应的中间值;
或者,若当次排序为首次排序,将所述待排序序列的第一个数字作为当次排序对应的中间值。
进一步地,所述根据所述当次排序对应的中间值、最大值和最小值,按照预设规则对所述待排序序列中的待排序数字进行排序,并将排序后的数字写入对应的预设数组中,包括:
依次遍历所述待排序序列中当次排序对应的待排序数字,若所述待排序数字大于或等于所述最大值,则将所述最大值赋值为所述待排序数字,并将所述待排序数字写入所述第一有序数组中;或者,
若所述待排序数字大于或等于所述中间值且小于所述最大值,则将所述待排序数字写入所述第一无序数组中;或者,
若所述待排序数字小于或等于所述最小值,则将所述最小值赋值为所述待排序数字,并则将所述待排序数字写入所述第二有序数组中;或者,
若所述待排序数字大于所述最小值且小于所述中间值,则将所述待排序数字写入所述第二无序数组中。
进一步地,所述根据所述当次排序对应的中间值、最大值和最小值,按照预设规则对所述待排序序列中的待排序数字进行排序,并将排序后的数字写入对应的预设数组中之前,还包括:
若当次排序为非首次排序,去除待排序序列中已经写入所述第一有序数组中的数字和所述第二有序数组中的数字,作为当次排序的所述待排序数字。
进一步地,所述若所述预设数组满足预设要求,则从所述预设数组中输出预设长度的序列,包括:
若所述第一有序数组和所述第一无序数组的长度满足预设长度要求,则输出所述第一有序数组和所述第一无序数组的数字;或者,
若所述第二无序数组为空,则获取所述第一有序数组和所述第一无序数组、以及所述第二有序数组中从大到小目标数量的数组,得到预设长度的序列,并输出所述预设长度的序列。
进一步地,所述从所述预设数组中输出预设长度的序列之后,还包括:
将所述预设长度的序列对应的搜索结果发送给主分片。
第二方面,本公开提供了一种搜索结果排序装置,包括:获取模块、排序模块、输出模块,其中:
所述获取模块,用于获取搜索结果对应的待排序序列,以及当次排序对应的中间值、最大值和最小值;
所述排序模块,用于根据所述当次排序对应的中间值、最大值和最小值,按照预设规则对所述待排序序列中的待排序数字进行排序,并将排序后的数字写入对应的预设数组中;其中,所述预设数组包括:第一有序数组、第一无序数组、第二有序数组、第二无序数组;
所述输出模块,用于若所述预设数组满足预设要求,则从所述预设数组中输出预设长度的序列。
进一步地,所述获取模块,具体用于获取当次排序对应的最大值和最小值;若当次排序为非首次排序,根据所述当次排序对应的最大值和最小值以及预设算法、预设调节参数,计算获取当次排序对应的中间值;或者,若当次排序为首次排序,将所述待排序序列的第一个数字作为当次排序对应的中间值。
进一步地,所述排序模块,具体用于依次遍历所述待排序序列中当次排序对应的待排序数字,若所述待排序数字大于或等于所述最大值,则将所述最大值赋值为所述待排序数字,并将所述待排序数字写入所述第一有序数组中;或者,
若所述待排序数字大于或等于所述中间值且小于所述最大值,则将所述待排序数字写入所述第一无序数组中;或者,
若所述待排序数字小于或等于所述最小值,则将所述最小值赋值为所述待排序数字,并则将所述待排序数字写入所述第二有序数组中;或者,
若所述待排序数字大于所述最小值且小于所述中间值,则将所述待排序数字写入所述第二无序数组中。
进一步地,所述装置还包括去除模块,用于若当次排序为非首次排序,去除待排序序列中已经写入所述第一有序数组中的数字和所述第二有序数组中的数字,作为当次排序的所述待排序数字。
进一步地,所述输出模块,具体用于若所述第一有序数组和所述第一无序数组的长度满足预设长度要求,则输出所述第一有序数组和所述第一无序数组的数字;或者,
若所述第二无序数组为空,则获取所述第一有序数组和所述第一无序数组、以及所述第二有序数组中从大到小目标数量的数组,得到预设长度的序列,并输出所述预设长度的序列。
进一步地,所述输出模块,还用于将与预设长度的序列对应的搜索结果发送给主分片。
第三方面,本公开提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述第一方面任一所述方法的步骤。
第四方面,本公开提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第一方面任一所述方法的步骤。
本公开的有益效果是:采用本公开提供的搜索结果排序方法,可以通过获取搜索结果对应的待排序序列,根据当次排序对应的中间值、最大值和最小值,按照预设规则对待排序序列中的待排序数字进行排序,并将排序后的数字写入对应的预设数组中,直到预设数组满足预设要求时,停止排序并输出预设长度的序列,相对于现有技术,将待排序数字进行分组排序,预设数组满足预设要求时就可以停止排序,无需将所有待排序序列全部排完,既可以满足搜索结果的排序要求,还加快了排序速度,减小了计算开销,大大减少了时间。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本公开一实施例提供的搜索结果排序方法的流程示意图;
图2为本公开另一实施例提供的搜索结果排序方法的流程示意图;
图3为本公开另一实施例提供的搜索结果排序方法的流程示意图;
图4为本公开一实施例提供的搜索结果排序装置的结构示意图;
图5为本公开另一实施例提供的搜索结果排序装置的结构示意图;
图6为本公开一实施例提供的电子设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。
为使本公开下述实施例中的内容更容易理解,在此对部分必要的名词作出解释如下:
Elasticsearch:简称ES,是一个基于Lucene的搜索服务器,是一种当前流行的企业级搜索引擎。它提供了一个分布式多用户能力的全文搜索引擎,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
分片(shards):ES中所有数据的文件块,也是数据的最小单元块,每个分片分布在不同的节点上。
本公开提供一种搜索结果排序方法,可以基于分布式的搜索引擎实现,该分布式的搜索引擎可以包括多个分片,搜索结果会分布在多个分片上,该方法的执行主体可以为其中任一分片,采用本公开提供的方法,可以使搜索阶段的时间大大减小。
图1为本公开一实施例提供的一种搜索结果排序方法的流程示意图,如图1所示,该方法包括:
S101:获取搜索结果对应的待排序序列,以及当次排序对应的中间值、最大值和最小值。
需要说明的是,搜索结果不一定是数字,可能是文字、英文字母、表格信息等任意类型,在开始排序前,可以根据搜索结果的与搜索指令的匹配程度等,采用预设算法计算出每个待排序搜索结果对应的数值,所有搜索结果对应的数值组成待排序序列。
S102:根据当次排序对应的中间值、最大值和最小值,按照预设规则对待排序序列中的待排序数字进行排序,并将排序后的数字写入对应的预设数组中。
可选地,预设数组可以包括:第一有序数组(highSort,简称hs)、第一无序数组(highRandom,简称hr)、第二有序数组(lowSort,简称ls)、第二无序数组(lowRandom,简称lr)。
排序过程中可以按照待排序序列中各待排序数字的顺序,逐一取出待排序数字,并按照预设规则进行排序;可选地,首轮排序时也可以每次从待排序序列中随即抽取一个待排序数字,并按照预设规则进行排序。具体取出待排序数字的方法可以根据用户需要设计,在此并不做任何限制。
S103:若预设数组满足预设要求,则从预设数组中输出预设长度的序列。
需要说明的是,每个分片满足条件的搜索结果数量可能远远超过实际需要的数据条数,因此无需全部排序后再反馈,那么本公开提供的排序算法中,排序后的预设数组满足要求,剩余的就可以不再排序了,把满足要求的序列输出,并发送对应的搜索结果给主分片即可。
举例说明:某个分片根据搜索指令搜索出的待排序序列中有五千个数值,但主分片只需要获取每个分片搜索结果中的前一千个数值,则通过排序得到前一千个数值,就可以停止排序,这样就可以进一步节省排序时间,当然,具体排序要求本公开不作限制。
本实施例中,通过获取搜索结果对应的待排序序列,根据当次排序对应的中间值、最大值和最小值,按照预设规则对待排序序列中的待排序数字进行排序,并将排序后的数字写入对应的预设数组中,若预设数组满足预设要求,则输出预设长度的序列,相对于现有技术,将待排序数字进行分组排序,预设数组满足预设要求时就可以停止排序,无需将所有待排序序列全部排完,既可以满足搜索结果的排序要求,还加快了排序速度,减小了计算开销,大大减少了时间。
图2为本公开另一实施例提供的搜索结果排序方法的流程示意图,如图2所示,步骤S101包括:
S201:获取当次排序对应的最大值和最小值。
S202a:若当次排序为非首次排序,根据当次排序对应的最大值和最小值以及预设算法、预设调节参数,计算获取当次排序对应的中间值。
需要说明的是,预设算法可以为mid=min+(max-min)*ratio(0<ratio<1),其中,mid为中间值,min为最小值,max为最大值,ratio为可调节的比例系数。
为了进一步减少排序时间,用户可以根据待排序序列中的数据量对ratio进行调节。例如:分片想要获取排序靠前的数据时,可以将ratio调大,使得mid偏向于max,从而仅获取排序靠前的数据;分片想要获取排序靠后的数据时,可以将ratio调小,使得mid偏向于min,从而获取排序靠后的数据。
S202b:若当次排序为首次排序,将待排序序列的第一个数字作为当次排序对应的中间值。
需要说明的是,只有首次排序时,中间值是直接将待排序序列中取到的第一个待排序数字的数值赋给它,后续中间值的赋值是根据每次的迭代结果、最大值、最小值以及预设算法进行计算得到的。当然,也不以此为限,可以抽取待排序序列中任意一个数字作为中间值。
需要说明的是,在排序前还需要对最大值和最小值进行初始化,具体地:设置完当次排序对应的中间值以后,将中间值赋值给最大值和最小值,此时即完成中间值、最大值和最小值的初始化,可以开始下一步的排序操作。
可选地,步骤S103包括:
(1)若第一有序数组和第一无序数组的长度满足预设长度要求,则输出第一有序数组和第一无序数组的数字;或者,
(2)若第二无序数组为空,则获取第一有序数组和第一无序数组、以及第二有序数组中从大到小目标数量的数组,得到预设长度的序列,并输出预设长度的序列。
需要说明的是,上述第(2)种实施方式中,可能存在于某些场景下:第一有序数组和第一无序数组的长度还未达到预设长度,但是第二无序数组中的数值已经排完,那么可以直接从第二有序数组中选择靠前的数值补齐预设长度即可。例如需要1000个数值,第一有序数组和第一无序数组加起来共有900个,第二无序数组为0,那么从第二有序数组中选择前100个数值补齐,得到预设长度的序列。
可选地,对待排序序列进行排序的预设规则为:依次遍历待排序序列中当次排序对应的待排序数字a[i],其中:
若a[i]≥max,则max=a[i]、hs=[hs,a[i]];
或者,若max>a[i]>mid,则hr=[hr,a[i]];
或者,若mid≥a[i]>min,则lr=[lr,a[i]];
或者,若a[i]≤min,则min=a[i]、ls=[ls,a[i]]。
可选地,如果min=mid=max=a[i],或者,min=mid=a[i]<max,可以将a[i]放入第二有序数组;另外,min=mid=max=a[i],可以将a[i]放入第一有序数组,但不以此为限。
也即是:依次遍历待排序序列中当次排序对应的待排序数字,若待排序数字大于或等于最大值,则将最大值赋值为待排序数字,并将待排序数字写入第一有序数组中;或者,
若待排序数字大于或等于中间值且小于最大值,则将待排序数字写入第一无序数组中;或者,
若待排序数字小于或等于最小值,则将最小值赋值为待排序数字,并则将待排序数字写入第二有序数组中;或者,
若待排序数字大于最小值且小于中间值,则将待排序数字写入第二无序数组中。
但不以上述划分为限,存在等于的情况时,可以灵活规定划分在哪个数组。
为了进一步节省排序时间,步骤S102之前,还包括:若当次排序为非首次排序,去除待排序序列中已经写入第一有序数组中的数字和第二有序数组中的数字,作为当次排序的所述待排序数字。
在本公开的一个实施例中,在非首次排序的情况下,去除掉已经写入第一有序数组和第二有序数组的数字,这样每一轮排序的待排序序列中的数据个数均会比上一轮的数据个数少,从而进一步节省了排序时间,提高了排序效率。
相应地,从预设数组中输出预设长度的序列之后,将预设长度的序列对应的搜索结果发送给主分片。
需要说明的是,若第一无序数组的长度为0,说明此时所有大于中间值的数值已经排序完成,下次排序只需对小于中间值的数据进行排序,其中,可以通过调整比例系数,从而达到减少排序时间的作用。若第二无序数组的长度为0,说明此时所有小于中间值的数值已经排序完成,下次排序只需对大于中间值的数据进行排序,可以通过调整比例系数,从而达到减少排序时间的作用。若第一无序数组和第二无序数组的长度均为0,说明此时待排序数组已经整体排序完成。
假设当前目标是仅获取搜索记录中的前N条记录,为了进一步减少获取时间,可以对算法做出部分调整,具体调整部分如下:
1.当前分片上的待排序序列的长度小于N条时,直接返回所有待排序序列的结果即可。
2.进入排序过程后:
(1)如果第一有序数组和第一无序数组的长度之和大于N条时,后续的排序只需对有序数组和无序数组中的数据进行排序,小于中间值的部分(即第二有序数组和第二无序数组)可以直接舍弃,不用参加排序。或者,
(2)如果第一有序数组和第一无序数组的长度之和小于或等于N条时,则不需要对第一有序数组和第一无序数组进行排序,直接将第一有序数组和第一无序数组中的所有数据返回,同时,小于中间值的部分继续排序,排序长度为N减去第一有序数组和第一无序数组的长度,并将排序后的预设排序长度内的数据返回主分片,其余部分直接舍弃。
图3为本公开另一实施例提供的搜索结果排序方法的流程示意图,该方法完整的流程图为如3所示。
举例说明,以下述数组为例,配合图3,详细说明了本公开中待排序序列排序时的整个排序过程:
S301:获取搜索结果对应的待排序序列a。
假设待排序序列a如下所示:
36 | 50 | 82 | 35 | 46 | 2 | 63 | 72 | 87 | 39 | 51 | 32 | 44 | 65 | 22 |
S302:设置待排序序列中的相关参数:min、max、mid、ls、lr、hs、hr、start、end。
例如,设置min=max=mid=0;start=1;end为待排序序列a的长度,在本实施例中,end=15;ls、lr、hs、hr中均不包含数据,所以ls、lr、hs、hr的数组长度均为0,即:length(ls)=0;length(lr)=0;length(hs)=0;length(hr)=0。
第一轮排序:
S303:初始化min、max、mid;其中:mid=(min+max)/2;min=mid;max=mid。
例如:由于第一轮还没有开始排序,所以设置时,按照start值获取当前数组中的第1个数值36,并将36赋给中间值;随后将中间值赋值给最大值和最小值,即最大值和最小值均为36。
S304:从i=start开始递增循环:
可选地,a[i]的判断依据可以为:
方案一:
1.a[i]≥max;max=a[i];hs=[hs,a[i]];
2.max>a[i]>mid;hr=[hr,a[i]];
3.mid≥a[i]>min;lr=[lr,a[i]];
4.a[i]≤min;min=a[i];ls=[ls,a[i]];
i=end时,结束循环。
方案二:
1.a[i]≥max;max=a[i];hs=[hs,a[i]];
2.max>a[i]≥mid;hr=[hr,a[i]];
3.mid≥a[i]>min;lr=[lr,a[i]];
4.a[i]≤min;min=a[i];ls=[ls,a[i]];
i=end时,结束循环。
方案三:
1.a[i]≥max;max=a[i];hs=[hs,a[i]];
2.max>a[i]>mid;hr=[hr,a[i]];
3.mid≥a[i]≥min;lr=[lr,a[i]];
4.a[i]<min;min=a[i];ls=[ls,a[i]];
i=end时,结束循环。
方案四:
1.a[i]>max;max=a[i];hs=[hs,a[i]];
2.max≥a[i]>mid;hr=[hr,a[i]];
3.mid≥a[i]>min;lr=[lr,a[i]];
4.a[i]≤min;min=a[i];ls=[ls,a[i]];
i=end时,结束循环。
方案五:
1.a[i]>max;max=a[i];hs=[hs,a[i]];
2.max≥a[i]>mid;hr=[hr,a[i]];
3.mid≥a[i]≥min;lr=[lr,a[i]];
4.a[i]<min;min=a[i];ls=[ls,a[i]];
i=end时,结束循环。
方案六:
1.a[i]>max;max=a[i];hs=[hs,a[i]];
2.max≥a[i]≥mid;hr=[hr,a[i]];
3.mid>a[i]≥min;lr=[lr,a[i]];
4.a[i]<min;min=a[i];ls=[ls,a[i]];
i=end时,结束循环。
具体排序过程中,a[i]的判断依据可以从上述六个方案中选择,用户根据需要选择对应的方案,在此并不做任何限制。一次完整的排序选定方案后便不可更改,按照选定方案的排序规进行排序,直至待排序序列排序完成,下一次排序时,用户可更换新的方案。
可选地,如果min=mid=max=a[i],或者,min=mid=a[i]<max,可以将a[i]放入第二有序数组;另外,min=mid=max=a[i],可以将a[i]放入第一有序数组,但不以此为限。具体实现时,可以预先配置其中一种方案执行。
举例说明:
按照S304中的方案一描述的预设规则对序列a进行排序:按照start值获取当前数组中的第1个数值36,36等于最小值36,所以将36加入第二有序数组中,同时获取下一个数值50;50大于最大值36,所以将最大值重新赋值为50,同时将50加入第一有序数组中,并获取下一个数字82;此时82大于最大值50,所以将最大值重新赋值为82,并将82加入第一有序数组中,并获取下一个数字35;35小于最小值36,所以将最小值重新赋值为35,同时将35加入第二有序数组中,并获取下一个数字46;46大于中间值36并且小于最大值82,所以直接将46放入第一无序数组中,同时获取下一个数字2;2小于最小值35,所以将最小值重新赋值为2,同时将2加入第二有序数组中,并获取下一个数字63;63和72判断过程与上述类似,在此不再赘述,故将63和72均放入第一无序数组中,同时获取下一个数字87;87大于最大值82,所以将最大值重新赋值为87,并将87加入第一有序数组中,并获取下一个数字39;39和51判断过程与上述类似,在此不再赘述,故将39和51均放入第一无序数组中,同时获取下一个数字32;32大于最小值2并且小于中间值36,所以直接将32放入第二无序数组中,同时获取下一个数字44;44和65判断过程与上述类似,在此不再赘述,故将44和65均放入第一无序数组中;22经过判断,放入第二无序数组中。
此时,经过第一轮排序的各预设数组的情况为:
ls | lr | hr | hs |
36 | 32 | 46 | 50 |
35 | 22 | 63 | 82 |
2 | 72 | 87 | |
39 | |||
51 | |||
44 | |||
65 |
S305:按照hs倒序,hr、lr、ls正序的顺序,对a[start]~a[end]依次赋值。
例如:第一轮排序完成后,按照hs倒序,hr、lr、ls正序的规则,重新整理序列a,对a[1]~a[15]依次赋值,整理后的序列a如下所示:
87 | 82 | 50 | 46 | 63 | 39 | 51 | 44 | 65 | 32 | 72 | 22 | 36 | 35 | 2 |
此时可以得到当前序列a中的最大值为hs数组中的最后一个值87,最小值为ls数组中的最后一个值2,这两个值已经明确顺序,可以不参加下次迭代。
S306:判断是否length(hr)=0?
若length(hr)不为零,则执行步骤S311:Start++;
若length(hr)为零,则执行步骤S307:strart=start+length(hs)。
例如:此时length(hr)=7,不为零,所以将start=1+1=2,随后执行步骤S312。
S312:判断是否length(lr)=0?
若length(lr)为零,则执行步骤S314:End=end-length(lr);
若length(lr)不为零,则执行步骤S313:end--。
例如:此时length(ls)=3,不为零,所以执行步骤S313end=15-1=14。
执行完步骤S313后,回到步骤S303,进入下一轮循环。
第二轮排序:
根据步骤S303计算中间值,在本实施例中,比例系数设置为0.5,则根据公式计算(87+2)/2=44.5,44.5即为中间值,随后,将中间值同时赋给最大值和最小值,即最大值和最小值均为44.5,随后按照预设规则对剩下的待排序序列进行第二轮排序。
根据步骤S304中的预设规则,对序列a进行第二轮排序:按照start值获取当前数组中的第2个数值82,由于82大于最大值44.5,所以将最大值重新赋值为82,并将82放入第一有序数组中,随后获取下一个数字50;50、46、63、72经过逐一判断后,均依次放入第一无序数组中,同时获取下一个数字39;39小于最小值44.5,所以将最小值重新赋值为39,并将39放入第二有序数组中,同时获取下一个数字51;51经过判断后,放入第一无序数组中,同时获取下一个数字44;44经过判断后,放入第二无序数组中,同时获取下一个数字65;65经过判断后,放入第一无序数组中,同时获取下一个数字32;32小于最小值39,所以将最小值重新赋值为32,并将32放入第二有序数组中,同时获取下一个数字22;22小于最小值32,所以将最小值重新赋值为22,并将22放入第二有序数组中,同时获取下一个数字36;36和35经过依次判断后,按照顺序放入第二无序数组中。
此时,经过第二轮排序的各预设数组的情况为:
ls | lr | hr | hs |
39 | 44 | 50 | 82 |
32 | 36 | 46 | |
22 | 35 | 63 | |
72 | |||
51 | |||
65 |
按照步骤S305中的要求,对a[2]~a[14]依次赋值,整理后的序列a如下所示:
87 | 82 | 50 | 46 | 63 | 72 | 51 | 65 | 44 | 36 | 35 | 39 | 32 | 22 | 2 |
此时经过第二轮排序后的剩余待排序序列中的最大值82和最小值22,这两个数值不参加下次迭代(至此不参加第三次迭代的数值分别为:87、82、22、2)。
执行步骤306,判断第一无序数组的长度,由于第一无序数组的长度不为零,所以执行步骤S311,start=start+1=3;同时执行步骤S312,判断第二无序数组的长度,由于第二无序数组的长度也不为0,所以执行步骤S313,end=end-1=13,随后回到步骤S303,进入下一轮循环。
第三轮排序:
根据步骤S303计算中间值,根据公式计算(82+22)/2=52,52即为中间值,随后,将中间值同时赋给最大值和最小值,即最大值和最小值均为52,随后按照预设规则对剩下的待排序序列进行第三轮排序。
根据步骤S304中的预设规则,对序列a进行第三轮排序:按照start值获取当前数组中的第3个数值50,由于50小于最小值52,所以将最小值重新赋值为50,并将50放入第二有序数组中,随后获取下一个数字46;46小于最小值50,所以将最小值重新赋值为46,并将46放入第二有序数组中,随后获取下一个数字63;63大于最大值52,所以将最大值重新赋值为63,并将63放入第一有序数组中,随后获取下一个数字72;72大于最大值63,所以将最大值重新赋值为72,并将72放入第一有序数组中,随后获取下一个数字51;51经过判断后,直接放入第二无序数组中,同时获取下一个数字44;44小于最小值46,所以将最小值重新赋值为44,并将44放入第二有序数组中,随后获取下一个数字65;65经过判断后直接放入第一无序数组中,同时获取下一个数字36;36小于最小值44,所以将最小值重新赋值为36,并将36放入第二有序数组中,随后获取下一个数字35;35小于最小值36,所以将最小值重新赋值为35,并将35放入第二有序数组中,随后获取下一个数字39;39经过判断后,直接放入第二无序数组中,同时获取下一个数字32;32小于最小值35,所以将最小值重新赋值为32,并将32放入第二有序数组中。
此时,经过第三轮排序的各预设数组的情况为:
ls | lr | hr | hs |
50 | 51 | 65 | 63 |
46 | 39 | 72 | |
44 | |||
36 | |||
35 | |||
32 |
按照步骤S305中的要求,对a[3]~a[13]依次赋值,整理后的序列a如下所示:
87 | 82 | 72 | 63 | 65 | 51 | 39 | 50 | 46 | 44 | 36 | 35 | 32 | 22 | 2 |
此时经过第三轮排序后的剩余待排序序列中的最大值72和最小值32,这两个数值不参加下次迭代(至此不参加第四次迭代的数值分别为:87、82、72、32、22、2)。
执行步骤306,判断第一无序数组的长度,由于第一无序数组的长度不为零,所以执行步骤S311,start=start+1=4;同时执行步骤S312,判断第二无序数组的长度,由于第二无序数组的长度也不为0,所以执行步骤S313,end=end-1=12,随后回到步骤S303,进入下一轮循环。
第四轮排序:
根据步骤S303计算中间值,根据公式计算(72+32)/2=52,52即为中间值,随后,将中间值同时赋给最大值和最小值,即最大值和最小值均为52,随后按照预设规则对剩下的待排序序列进行排序。
根据步骤S304中的预设规则,对序列a进行第四轮排序:按照start值获取当前数组中的第4个数值63,63大于最大值52,所以将最大值重新赋值为63,并将63放入第一有序数组,随后获取下一个数字65;65大于最大值63,所以将最大值重新赋值为65,并将65放入第一有序数组,随后获取下一个数字51;51小于最小值52,所以将最小值重新赋值为51,并将51放入第二有序数组,随后获取下一个数字39;39小于最小值51,所以将最小值重新赋值为39,并将39放入第二有序数组,随后获取下一个数字50;50、46、44经过逐一判断后,依次放入第二无序数组中,随后获取下一个数字36;36小于最小值39,所以将最小值重新赋值为36,并将36放入第二有序数组,随后获取下一个数字35;35小于最小值36,所以将最小值重新赋值为35,并将35放入第二有序数组。
此时,经过第四轮排序的各预设数组的情况为:
ls | lr | hr | hs |
51 | 50 | 63 | |
39 | 46 | 65 | |
36 | 44 | ||
35 |
按照步骤S305中的要求,对a[4]~a[12]依次赋值,整理后的序列a如下所示:
87 | 82 | 72 | 65 | 63 | 50 | 46 | 44 | 51 | 39 | 36 | 35 | 32 | 22 | 2 |
此时经过第四轮排序后的剩余待排序序列中的最大值65和最小值35,这两个数值不参加下次迭代(至此不参加第四次迭代的数值分别为:87、82、72、65、35、32、22、2)。
执行步骤306,判断第一无序数组的长度,由于第一无序数组的长度为零,所以执行步骤S307:start=start+length(hs)。
举例:start=start+length(hs)=6;同时执行步骤S308:length(lr)=0?。
若length(lr)不为0,则执行步骤S309:end--;
若length(lr)为0,则执行步骤S310:输出a,此时的a为排序好的数组。
举例:判断得到第一无序数组的长度为零,且执行完步骤S307后,执行步骤S308,判断第二无序数组的长度,由于第二无序数组的长度不为0,所以执行步骤S309,end=end-1=11,随后回到步骤S303,进入下一轮循环。
第五轮排序:
根据步骤S303计算中间值,根据公式计算(65+35)/2=50,50即为中间值,随后,将中间值同时赋给最大值和最小值,即最大值和最小值均为50,随后按照预设规则对剩下的待排序序列进行排序。
根据步骤S304中的预设规则,对序列a进行第五轮排序:按照start值获取当前数组中的第5个数值63,63大于最大值50,所以将最大值重新赋值为63,并将63放入第一有序数组,随后获取下一个数字50;50经过判断后,放入第一无序数组,随后获取下一个数字46;46小于最小值50,所以将最小值重新赋值为46,并将46放入第二有序数组,随后获取下一个数字44;44小于最小值46,所以将最小值重新赋值为44,并将44放入第二有序数组,随后获取下一个数字51;51经过判断后,放入第一无序数组,随后获取下一个数字39;39小于最小值44,所以将最小值重新赋值为39,并将39放入第二有序数组,随后获取下一个数字36;36小于最小值39,所以将最小值重新赋值为36,并将36放入第二有序数组。
此时,经过第五轮排序的各预设数组的情况为:
ls | lr | hr | hs |
46 | 50 | 63 | |
44 | 51 | ||
39 | |||
36 |
按照步骤S305中的要求,对a[5]~a[11]依次赋值,整理后的序列a如下所示:
87 | 82 | 72 | 65 | 63 | 50 | 51 | 46 | 44 | 39 | 36 | 35 | 32 | 22 | 2 |
此时经过第五轮排序后的剩余待排序序列中的最大值65和最小值35,这两个数值不参加下次迭代(至此不参加第四次迭代的数值分别为:87、82、72、65、63、36、35、32、22、2)。
执行步骤306,判断第一无序数组的长度,由于第一无序数组的长度不为零,所以执行步骤S311start=start+1=7;同时执行步骤S312,判断第二无序数组的长度,由于第二无序数组的长度也不为0,所以执行步骤S313,end=end-1=10,随后回到步骤S303,进入下一轮循环。
第六轮排序:
根据步骤S303计算中间值,根据公式计算(63+36)/2=50,49.5即为中间值,随后,将中间值同时赋给最大值和最小值,即最大值和最小值均为49.5,随后按照预设规则对剩下的待排序序列进行排序。
根据步骤S304中的预设规则,对序列a进行第六轮排序:按照start值获取当前数组中的第6个数值50,50大于最大值49.5,所以将最大值重新赋值为50,并将50放入第一有序数组,随后获取下一个数字51;51大于最大值50,所以将最大值重新赋值为51,并将51放入第一有序数组,随后获取下一个数字46;46小于最小值49.5,所以将最小值重新赋值为49.5,并将49.5放入第二有序数组,随后获取下一个数字44;44小于最小值46,所以将最小值重新赋值为44,并将44放入第二有序数组,随后获取下一个数字39;39小于最小值44,所以将最小值重新赋值为39,并将39放入第二有序数组,随后获取下一个数字36;36小于最小值39,所以将最小值重新赋值为36,并将36放入第二有序数组。
此时,经过第六轮排序的各预设数组的情况为:
ls | lr | hr | hs |
46 | 50 | ||
44 | 51 | ||
39 | |||
36 |
按照步骤S305中的要求,对a[6]~a[10]依次赋值,整理后的序列a如下所示:
87 | 82 | 72 | 65 | 63 | 51 | 50 | 46 | 44 | 39 | 36 | 35 | 32 | 22 | 2 |
执行步骤306,判断第一无序数组的长度,由于第一无序数组的长度为零,所以执行步骤S307,start=start+length(hs)=9;同时执行步骤S308:判断第二无序数组的长度,由于第二无序数组的长度为零,所以执行步骤S310,输出a,此时的a为排序好的数组。
本实施例中,通过获取搜索结果对应的待排序序列,根据当次排序对应的中间值、最大值和最小值,按照预设规则对待排序序列中的待排序数字进行排序,并将排序后的数字写入对应的预设数组中,直到预设数组满足预设要求时,停止排序并输出排序后的数组,相对于现有技术,将待排序数字进行分组排序,从而加快了排序速度,减小了计算开销,大大减少了时间。
图4为本公开一实施例提供的搜索结果排序装置的结构示意图,如图4所示,该装置包括:获取模块401、排序模块402、输出模块403,其中:
获取模块401,用于获取搜索结果对应的待排序序列,以及当次排序对应的中间值、最大值和最小值。
排序模块402,用于根据当次排序对应的中间值、最大值和最小值,按照预设规则对待排序序列中的待排序数字进行排序,并将排序后的数字写入对应的预设数组中;其中,预设数组包括:第一有序数组、第一无序数组、第二有序数组、第二无序数组。
输出模块403,用于若预设数组满足预设要求,则从所述预设数组中输出预设长度的序列。
进一步地,获取模块401,具体用于获取当次排序对应的最大值和最小值;若当次排序为非首次排序,根据当次排序对应的最大值和最小值以及预设算法、预设调节参数,计算获取当次排序对应的中间值;或者,若当次排序为首次排序,将待排序序列的第一个数字作为当次排序对应的中间值。
进一步地,排序模块402,具体用于依次遍历待排序序列中当次排序对应的待排序数字,若待排序数字大于或等于最大值,则将最大值赋值为待排序数字,并将待排序数字写入第一有序数组中;或者,
若待排序数字大于或等于中间值且小于最大值,则将待排序数字写入第一无序数组中;或者,
若待排序数字小于或等于最小值,则将最小值赋值为待排序数字,并则将待排序数字写入第二有序数组中;或者,
若待排序数字大于最小值且小于中间值,则将待排序数字写入第二无序数组中。
图5为本公开另一实施例提供的搜索结果排序装置的结构示意图,如图5所示,该装置还包括去除模块404,用于若当次排序为非首次排序,去除待排序序列中已经写入第一有序数组中的数字和第二有序数组中的数字,作为当次排序的待排序数字。
进一步地,输出模块403,具体用于若第一有序数组和第一无序数组的长度满足预设长度要求,则输出第一有序数组和第一无序数组的数字;或者,
若所述第二无序数组为空,则获取所述第一有序数组和所述第一无序数组、以及所述第二有序数组中从大到小目标数量的数组,得到预设长度的序列,并输出所述预设长度的序列。
进一步地,输出模块403,还用于将预设长度的序列对应的搜索结果发送给主分片。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图6为本公开另一实施例提供的电子设备的结构示意图,如图6所示,该电子设备可以集成于终端设备或者终端设备的芯片,该终端可以是具备图像处理功能的计算设备。
电子设备600包括:处理器601、存储器602、和总线603。存储器602存储有处理器601可执行的机器可读指令,当电子设备600运行时,处理器601与存储器602之间通过总线603通信,处理器601执行机器可读指令,以执行如前述方法实施例所提供的请求处理方法的步骤。
具体地,存储器602中所存储的机器可读指令为本公开前述实施例所述的请求处理方法的执行步骤,处理器601可执行该请求处理方法对请求进行处理,因此,该电子设备同样具备前述方法实施例中所述的全部有益效果,本公开亦不再重复描述。
可选地,本公开还提供一种程序产品,例如存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述定位处理方法,从而,解决现有技术中存在的由于语言表达组合形式多种多样,大量信息会导致句库规模过大,占用过多的资源的问题,进而达到减小资源占用的效果。
在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本公开各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (10)
1.一种搜索结果排序方法,其特征在于,包括:
获取搜索结果对应的待排序序列,以及当次排序对应的中间值、最大值和最小值;
根据所述当次排序对应的中间值、最大值和最小值,按照预设规则对所述待排序序列中的待排序数字进行排序,并将排序后的数字写入对应的预设数组中;其中,所述预设数组包括:第一有序数组、第一无序数组、第二有序数组、第二无序数组;
若所述预设数组满足预设要求,则从所述预设数组中输出预设长度的序列。
2.如权利要求1所述的方法,其特征在于,所述获取搜索结果对应的待排序序列,以及当次排序对应的中间值、最大值和最小值,包括:
获取当次排序对应的最大值和最小值;
若当次排序为非首次排序,根据所述当次排序对应的最大值和最小值以及预设算法、预设调节参数,计算获取当次排序对应的中间值;
或者,若当次排序为首次排序,将所述待排序序列的第一个数字作为当次排序对应的中间值。
3.如权利要求1所述的方法,其特征在于,所述根据所述当次排序对应的中间值、最大值和最小值,按照预设规则对所述待排序序列中的待排序数字进行排序,并将排序后的数字写入对应的预设数组中,包括:
依次遍历所述待排序序列中当次排序对应的待排序数字,若所述待排序数字大于或等于所述最大值,则将所述最大值赋值为所述待排序数字,并将所述待排序数字写入所述第一有序数组中;或者,
若所述待排序数字大于或等于所述中间值且小于所述最大值,则将所述待排序数字写入所述第一无序数组中;或者,
若所述待排序数字小于或等于所述最小值,则将所述最小值赋值为所述待排序数字,并则将所述待排序数字写入所述第二有序数组中;或者,
若所述待排序数字大于所述最小值且小于所述中间值,则将所述待排序数字写入所述第二无序数组中。
4.如权利要求2所述的方法,其特征在于,所述根据所述当次排序对应的中间值、最大值和最小值,按照预设规则对所述待排序序列中的待排序数字进行排序,并将排序后的数字写入对应的预设数组中之前,还包括:
若当次排序为非首次排序,去除待排序序列中已经写入所述第一有序数组中的数字和所述第二有序数组中的数字,作为当次排序的所述待排序数字。
5.如权利要求1所述的方法,其特征在于,所述若所述预设数组满足预设要求,则从所述预设数组中输出预设长度的序列,包括:
若所述第一有序数组和所述第一无序数组的长度满足预设长度要求,则输出所述第一有序数组和所述第一无序数组的数字;或者,
若所述第二无序数组为空,则获取所述第一有序数组和所述第一无序数组、以及所述第二有序数组中从大到小目标数量的数组,得到预设长度的序列,并输出所述预设长度的序列。
6.如权利要求5所述的方法,其特征在于,所述从所述预设数组中输出预设长度的序列之后,还包括:
将所述预设长度的序列对应的搜索结果发送给主分片。
7.一种搜索结果排序装置,其特征在于,包括:获取模块、排序模块、输出模块,其中:
所述获取模块,用于获取搜索结果对应的待排序序列,以及当次排序对应的中间值、最大值和最小值;
所述排序模块,用于根据所述当次排序对应的中间值、最大值和最小值,按照预设规则对所述待排序序列中的待排序数字进行排序,并将排序后的数字写入对应的预设数组中;其中,所述预设数组包括:第一有序数组、第一无序数组、第二有序数组、第二无序数组;
所述输出模块,用于若所述预设数组满足预设要求,则从所述预设数组中输出预设长度的序列。
8.如权利要求7所述的装置,其特征在于,所述获取模块,具体用于获取当次排序对应的最大值和最小值;若当次排序为非首次排序,根据所述当次排序对应的最大值和最小值以及预设算法、预设调节参数,计算获取当次排序对应的中间值;或者,若当次排序为首次排序,将所述待排序序列的第一个数字作为当次排序对应的中间值。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至6任一所述方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至6任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910691824.0A CN110442619B (zh) | 2019-07-29 | 2019-07-29 | 搜索结果排序方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910691824.0A CN110442619B (zh) | 2019-07-29 | 2019-07-29 | 搜索结果排序方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110442619A true CN110442619A (zh) | 2019-11-12 |
CN110442619B CN110442619B (zh) | 2022-02-11 |
Family
ID=68432129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910691824.0A Active CN110442619B (zh) | 2019-07-29 | 2019-07-29 | 搜索结果排序方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110442619B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309285A (zh) * | 2019-12-09 | 2020-06-19 | 深圳云天励飞技术有限公司 | 多媒体数据排序方法、装置、终端设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763391A (zh) * | 2008-12-23 | 2010-06-30 | 康佳集团股份有限公司 | 分布式网络站点及其信息搜索方法及系统 |
CN102243631A (zh) * | 2010-05-13 | 2011-11-16 | 吴春尧 | 超关键字分布式搜索方法 |
US20120239681A1 (en) * | 2011-03-14 | 2012-09-20 | Splunk Inc. | Scalable interactive display of distributed data |
-
2019
- 2019-07-29 CN CN201910691824.0A patent/CN110442619B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763391A (zh) * | 2008-12-23 | 2010-06-30 | 康佳集团股份有限公司 | 分布式网络站点及其信息搜索方法及系统 |
CN102243631A (zh) * | 2010-05-13 | 2011-11-16 | 吴春尧 | 超关键字分布式搜索方法 |
US20120239681A1 (en) * | 2011-03-14 | 2012-09-20 | Splunk Inc. | Scalable interactive display of distributed data |
Non-Patent Citations (1)
Title |
---|
陈倩诒: "《数据结构 C语言版》", 31 August 2017, 华中科技大学出版社 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309285A (zh) * | 2019-12-09 | 2020-06-19 | 深圳云天励飞技术有限公司 | 多媒体数据排序方法、装置、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110442619B (zh) | 2022-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106779060B (zh) | 一种适于硬件设计实现的深度卷积神经网络的计算方法 | |
CN109800936B (zh) | 基于树状搜寻的调度方法与使用该方法的电子装置 | |
CN110909787A (zh) | 基于聚类的进化算法进行多目标批调度优化的方法和系统 | |
CN113994350A (zh) | 为神经网络生成并行计算方案 | |
Schlag et al. | Scalable edge partitioning | |
CN109491791B (zh) | 基于申威众核处理器的nsga-ii的主从增强式运行方法及装置 | |
CN112199407B (zh) | 一种数据分组排序方法、装置、设备及存储介质 | |
CN101339619A (zh) | 用于模式分类的动态特征选择方法 | |
CN110442619A (zh) | 搜索结果排序方法、装置、电子设备及存储介质 | |
Ishigaki et al. | Iterated local search algorithm for flexible job shop scheduling | |
CN109800078A (zh) | 一种任务处理方法、任务分发终端及任务执行终端 | |
CN109255484A (zh) | 数据驱动的离散制造资源协同优化方法及系统 | |
CN111026534B (zh) | 云计算环境下基于多种群遗传算法的工作流执行优化方法 | |
CN106326249B (zh) | 数据整合处理方法及装置 | |
Ausaf et al. | Optimization of multi-objective integrated process planning and scheduling problem using a priority based optimization algorithm | |
CN109635328A (zh) | 集成电路布局方法以及分布式设计方法 | |
CN108875301B (zh) | 一种基因序列比对方法、pe配置控制器及可读存储介质 | |
CN111090510A (zh) | 混合启发式和遗传算法的两阶段云工作流调度优化方法 | |
CN110209656A (zh) | 数据处理方法及装置 | |
CN110309367A (zh) | 信息分类的方法、信息处理的方法和装置 | |
Mosheiov et al. | Flow‐shop batch scheduling with identical processing‐time jobs | |
CN111078361A (zh) | 基于分布式估计算法的云工作流调度优化方法 | |
CN110309177B (zh) | 一种数据处理的方法以及相关装置 | |
Ling et al. | An MOEA/D-ACO with PBI for many-objective optimization | |
CN110928670A (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 |