数据排序方法、装置、服务器及计算机可读存储介质与流程

文档序号:17718846发布日期:2019-05-22 02:00阅读:134来源:国知局
数据排序方法、装置、服务器及计算机可读存储介质与流程

本申请属于数据处理技术领域,尤其涉及一种数据排序方法、装置、服务器及计算机可读存储介质。



背景技术:

汽车已经成为现代生活中重要的交通工具,拥有个人汽车的用户也越来越多。为了解自己车辆的相关信息,用户通常会浏览各种汽车论坛例如golo汽修大师社区,在golo汽修大师社区等论坛上搜索、浏览关于汽车的相关问题及解决方案的帖子。用户在使用golo汽修大师社区查看帖子时,可以选择帖子以及帖子回复等数据的排序方式,服务器需要对数据进行处理,从而按照用户选择的排序方式进行排序。

然而,现有的排序方法是通过走访所有数据,交换不符合用户的数据排序要求的相邻两个数据,直到所有数据都符合排序要求为止,排序将会造成一定时间的消耗,对于庞大数量的数据的排序的处理需耗费更多的时间。

综上所述,现有技术中,对于庞大数量的论坛数据的排序需耗费大量的时间,排序效率不高,导致数据加载时间过长,增加了用户的等待时间,用户体验不佳。



技术实现要素:

有鉴于此,本申请提供了一种数据排序方法、装置、服务器及计算机可读存储介质,以解决现有技术中对于庞大数量的论坛数据的排序需耗费大量的时间,排序效率不高,导致数据加载时间过长,增加了用户的等待时间,用户体验不佳的问题。

本申请的第一方面提供了一种数据排序方法,包括:

若检测到用户的排序指令,获取客户端当前页面的实时数据,并判断所述实时数据所属的数量级;

获取与所述实时数据所属的数量级对应的排序算法;

根据所述实时数据所属的数量级对应的排序算法以及所述排序指令携带的排序模式,对所述客户端当前页面的实时数据进行排序。

可选地,在所述若检测到用户的排序指令,获取客户端当前页面的实时数据,并判断所述实时数据所属的数量级的步骤之前,包括:

获取用户的加载指令,所述加载指令包括所述用户指定加载的数据;

基于所述加载指令,按预设处理规则对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示。

可选地,所述加载指令携带所述用户的用户信息,所述基于所述加载指令,按预设处理规则对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示的步骤,包括:

根据所述用户的用户信息,获取所述用户的历史排序指令;

根据所述历史排序指令中的排序算法,对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示。

可选地,所述基于所述加载指令,按预设处理规则对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示的步骤,包括:

获取所述加载指令中所述用户指定加载的数据根据历史用户排序指令进行排序的历史排序算法;

根据所述历史排序算法中使用次数最多的排序算法,对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示。

可选地,所述排序指令包括用户选择的排序基准类别,所述根据所述实时数据所属的数量级对应的排序算法以及所述排序指令携带的排序模式,对所述客户端当前页面的实时数据进行排序的步骤,包括:

若所述实时数据所属的数量级不高于十万级,则将所述实时数据中为排序基准类别的数据作为待排序数据;

从所述待排序数据中随机选择一个数据作为关键数据;

将所述待排序数据中除所述关键数据以外其他的待排序数据依次与所述关键数据进行大小比较;

根据比较结果以及所述排序指令携带的排序模式,对所述待排序数据进行第一次排序;

以所述关键数据为中心轴,将经过第一次排序的所述待排序数据分为第一部分和第二部分,从所述第一部分和所述第二部分中分别选取一个关键数据,将所述第一部分中除所述第一部分的关键数据以外其他的待排序数据依次与所述第一部分的关键数据进行大小比较,将所述第二部分中除所述第二部分的关键数据以外其他的待排序数据依次与所述第二部分的关键数据进行大小比较,根据比较结果以及所述排序指令携带的排序模式,分别对所述第一部分和第二部分中的数据进行排序,依次类推,直至所述待排序数据成为满足所述排序模式的有序数据。

可选地,所述排序指令包括用户选择的排序基准类别,所述根据所述实时数据所属的数量级对应的排序算法以及所述排序指令携带的排序模式,对所述客户端当前页面的实时数据进行排序的步骤,包括:

若所述实时数据所属的数量级为百万级,将所述实时数据中为排序基准类别的数据作为待排序数据;

将所述待排序数据分为第一部分和第二部分,其中,所述第一部分中的待排序数据为有序数据;

以所述第一部分中的待排序数据为基准,从所述第二部分中依次选择待排序数据与所述第一部分中的待排序数据进行大小比较;

根据比较结果以及所述排序指令携带的排序模式,将所述第二部分中的待排序数据依次插入至所述第一部分的待排序数据中,完成排序。

本申请的第二方面提供了一种数据排序装置,包括:

数据获取与判断单元,用于若检测到用户的排序指令,获取客户端当前页面的实时数据,并判断所述实时数据所属的数量级;

排序算法获取单元,用于获取与所述实时数据所属的数量级对应的排序算法;

数据排序单元,用于根据所述实时数据所属的数量级对应的排序算法以及所述排序指令携带的排序模式,对所述客户端当前页面的实时数据进行排序。

可选地,所述数据排序装置还包括:

加载指令获取单元,用于获取用户的加载指令,所述加载指令包括所述用户指定加载的数据;

初始排序加载单元,用于基于所述加载指令,按预设处理规则对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示。

可选地,所述加载指令携带所述用户的用户信息,所述初始排序加载单元包括:

历史排序指令获取模块,用于根据所述用户的用户信息,获取所述用户的历史排序指令;

第一初始排序加载模块,用于根据所述历史排序指令中的排序算法,对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示。

可选地,所述初始排序加载单元包括:

历史排序算法获取模块,用于获取所述加载指令中所述用户指定加载的数据根据历史用户排序指令进行排序的历史排序算法;

第二初始排序加载模块,用于根据所述历史排序算法中使用次数最多的排序算法,对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示。

可选地,所述排序指令包括用户选择的排序基准类别,所述数据排序单元包括:

第一待排序数据确定模块,用于若所述实时数据所属的数量级不高于十万级,则将所述实时数据中为排序基准类别的数据作为待排序数据;

关键数据确定模块,用于从所述待排序数据中随机选择一个数据作为关键数据;

第一数据比较模块,用于将所述待排序数据中除所述关键数据以外其他的待排序数据依次与所述关键数据进行大小比较;

第一排序模块,用于根据比较结果以及所述排序指令携带的排序模式,对所述待排序数据进行第一次排序;

第二排序模块,用于以所述关键数据为中心轴,将经过第一次排序的所述待排序数据分为第一部分和第二部分,从所述第一部分和所述第二部分中分别选取一个关键数据,将所述第一部分中除所述第一部分的关键数据以外其他的待排序数据依次与所述第一部分的关键数据进行大小比较,将所述第二部分中除所述第二部分的关键数据以外其他的待排序数据依次与所述第二部分的关键数据进行大小比较,根据比较结果以及所述排序指令携带的排序模式,分别对所述第一部分和第二部分中的数据进行排序,依次类推,直至所述待排序数据成为满足所述排序模式的有序数据。

可选地,所述排序指令包括用户选择的排序基准类别,所述数据排序单元包括:

第二待排序数据确定模块,用于若所述实时数据所属的数量级为百万级,将所述实时数据中为排序基准类别的数据作为待排序数据;

数据划分模块,用于将所述待排序数据分为第一部分和第二部分,其中,所述第一部分中的待排序数据为有序数据;

第二数据比较模块,用于以所述第一部分中的待排序数据为基准,从所述第二部分中依次选择待排序数据与所述第一部分中的待排序数据进行大小比较;

插入排序模块,用于根据比较结果以及所述排序指令携带的排序模式,将所述第二部分中的待排序数据依次插入至所述第一部分的待排序数据中,完成排序。

本申请的第三方面提供了一种服务器,所述服务器包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上第一方面所述的数据排序方法的步骤。

本申请的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上第一方面所述的数据排序方法的步骤。

本申请的第五方面提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,所述计算机程序被一个或多个处理器执行时实现如上第一方面所述的数据排序方法的步骤。

由此可见,通过本申请实施例,服务器若检测到用户的排序指令,则获取客户端当前页面的实时数据,并判断所述实时数据所属的数量级,再获取与所述实时数据所属的数量级对应的排序算法,最后根据所述实时数据所属的数量级对应的排序算法以及所述排序指令携带的排序模式,对所述客户端当前页面的实时数据进行排序,本申请方案可根据实时数据的数量级选择相应的排序算法,在保证排序准确性的同时提高排序效率,加快数据加载的速度,从而减少用户的等待时间,增强用户体验。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种数据排序方法的实现流程示意图;

图2是本申请实施例提供的另一种数据排序方法的实现流程示意图;

图3是本发明实施例提供的数据排序装置的结构框图;

图4是本发明实施例提供的服务器的结构框图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

本申请所提供的数据排序方法应用于服务器,其中,所述服务器与用户的客户端基于互联网而相互连接,以使得二者之间能够进行数据交互操作,所述服务器在用户的客户端的指示下,检测用户的排序指令,若检测到用户的排序指令,获取客户端当前页面的实时数据,并判断所述实时数据所属的数量级,然后获取与所述实时数据所属的数量级对应的排序算法,再根据所述实时数据所属的数量级对应的排序算法以及所述排序指令携带的排序模式,对所述客户端当前页面的实时数据进行排序,根据实时数据的数量级选择相应的排序算法,在保证排序准确性的同时提高排序效率,加快数据加载的速度,从而减少用户的等待时间,增强用户体验。为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。

实施例一

下面对本申请实施例提供的一种数据排序方法进行描述,该数据排序方法应用于服务器,请参阅图1,本申请实施例中的数据排序方法包括:

在步骤s101中,若检测到用户的排序指令,获取客户端当前页面的实时数据,并判断所述实时数据所属的数量级。

具体地,用户在客户端上浏览社区页面时,可选择当前页面上的实时数据中某一类数据,例如浏览量作为排序基准类别进行升序或者降序排序,客户端根据用户的选择生成排序指令发送至服务器。所述排序指令携带排序模式,排序模式包括降序和升序,所述排序指令还包括用户选择的排序基准类别,例如,排序基准类别可以是帖子回复数量、帖子发布时间或者浏览量。需说明的是,在本实施例中,所述排序基准类别可以不止一个,例如,可以为帖子回复数量、帖子发布时间或者浏览量中的一个或者多个。所述数量级是指所述实时数据的数据量所属的级别,例如十万级、百万级或者千万级。

在步骤s102中,获取与所述实时数据所属的数量级对应的排序算法。

具体地,预设数量级排序对照表,所述数量级排序对照表包括数量级与排序算法的映射关系,从所述数量级排序对照表中查找所述客户端当前页面的实时数据所属的数量级对应的排序算法。其中,数量级与排序算法的运行速度正相关,数量级越大,与其对应的排序算法的运行速度越快。

在步骤s103中,根据所述实时数据所属的数量级对应的排序算法以及所述排序指令携带的排序模式,对所述客户端当前页面的实时数据进行排序。

在本申请实施例中,预先建立数量级与排序算法的映射关系,从而可根据实时数据的数量级选择合适的排序算法,同时根据排序指令携带的排序模式,即升序或者降序,对客户端当前页面的实时数据进行排序,有效提高数据的排序速度,节省用户时间。

可选地,所述排序指令包括用户选择的排序基准类别,所述步骤s103包括:

a1:若所述实时数据所属的数量级不高于十万级,则将所述实时数据中为排序基准类别的数据作为待排序数据。

a2:从所述待排序数据中随机选择一个数据作为关键数据。具体地,使用随机算法从所述待排序数据中随机选择一个数据作为关键数据。

a3:将所述待排序数据中除所述关键数据以外其他的待排序数据依次与所述关键数据进行大小比较。

a4:根据比较结果以及所述排序指令携带的排序模式,对所述待排序数据进行第一次排序。具体地,若所述排序模式为升序排序,则将所述关键数据之外的其他的待排序数据中比所述关键数据大的放在所述关键数据之后,比所述关键数据小的放在所述关键数据之前;反之,若所述排序模式为降序排序,则将所述关键数据之外的其他的待排序数据中比所述关键数据大的放在所述关键数据之前,比所述关键数据小的放在所述关键数据之后。

a5:以所述关键数据为中心轴,将经过第一次排序的所述待排序数据分为第一部分和第二部分,从所述第一部分和所述第二部分中分别选取一个关键数据,将所述第一部分中除所述第一部分的关键数据以外其他的待排序数据依次与所述第一部分的关键数据进行大小比较,将所述第二部分中除所述第二部分的关键数据以外其他的待排序数据依次与所述第二部分的关键数据进行大小比较,根据比较结果以及所述排序指令携带的排序模式,分别对所述第一部分和第二部分中的数据进行排序,依次类推,直至所述待排序数据成为满足所述排序模式的有序数据。在本发明实施例中,经过第一次排序将除所述关键数据之外的待排序数据分为两部分,一部分为小于所述关键数据的待排序数据,另外一部分为大于所述关键数据的待排序数据。若所述排序指令携带的排序模式为升序排序,则所述第一部分中的待排序数据皆小于所述关键数据,所述第二部分中的待排序数据皆大于所述关键数据,反之,若所述排序指令携带的排序模式为降序排序,则所述第一部分中的待排序数据皆小于所述关键数据,所述第二部分中的待排序数据皆大于所述关键数据。

示例性地,所述用户的排序指令中包括用户选择的排序基准类别为浏览量,当判断所述客户端当前页面的实时数据所属的数量级不高于十万级时,获取所述实时数据中的浏览量数据,随机选择一个浏览量数据(通常为当前浏览量数据中的第一个)为关键数据,将其它浏览量数据与该关键数据进行比较,若所述排序模式为升序,则将大于关键数据的浏览量数据放在关键数据后边,小于关键数据的浏览量数据放在关键数据前面;若所述排序模式为升序,则将小于关键数据的浏览量数据放在关键数据后边,大于关键数据的浏览量数据放在关键数据前面,此为第一次排序;以所述关键数据为中心轴,将所述浏览量数据分为第一部分和第二部分,分别对所述第一部分和所述第二部分重复上述步骤a2至a4,直至所述浏览数据为升序排序或者降序排序。

在本申请实施例中,在排序过程中,通过选择关键数据,将待排序数据与关键数据比较进行第一次排序,由于已经分开的两部分的数据不需要进行比较,故减少了比较次数,减少了排序时间,可提高排序效率。

可选地,所述步骤s103包括:

b1:若所述实时数据所属的数量级为百万级,将所述实时数据中为排序基准类别的数据作为待排序数据。

b2:将所述待排序数据分为第一部分和第二部分。具体地,从所述待排序数据中抽取数据作为第一部分,余下的数据作为第二部分,其中,第一部分中的待排序数据为有序数据。

b2:以所述第一部分中的待排序数据为基准,从所述第二部分中依次选择待排序数据与所述第一部分中的待排序数据进行大小比较。

b3:根据比较结果以及所述排序模式,将所述第二部分中的待排序数据依次插入至所述第一部分的待排序数据中,完成排序。

本申请实施例中,假设第一部分中的待排序数据全部有序,即在所有的待排序数据中抽取有序的数据作为第一部分,将第一部分中的待排序数据作为基准,然后从所述第二部分中依次选择待排序数据,按照从右往左的顺序分别与第一部分中的待排序数据比较,若用户选择的排序模式为升序,则将选择的第二部分中的待排序数据插入至第一部分中比其小的待排序数据后面,比其大的待排序数据前面;若用户选择的排序模式为降序,则将选择的第二部分中的待排序数据插入至第一部分中比其小的待排序数据前面,比其大的待排序数据后面,从而完成排序。

由上可见,通过本申请实施例,服务器若检测到用户的排序指令,则获取客户端当前页面的实时数据,并判断所述实时数据所属的数量级,再获取与所述实时数据所属的数量级对应的排序算法,最后根据所述实时数据所属的数量级对应的排序算法以及所述排序指令携带的排序模式,对所述客户端当前页面的实时数据进行排序,本申请方案可根据实时数据的数量级选择相应的排序算法,在保证排序准确性的同时提高排序效率,加快数据加载的速度,从而减少用户的等待时间,增强用户体验。

应理解,所述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

实施例二

下面对本申请实施例提供的一种数据排序方法进行描述,该数据排序方法应用于服务器,请参阅图2,本申请实施例中的数据排序方法包括:

在步骤s201中,获取用户的加载指令,所述加载指令包括所述用户指定加载的数据。

具体地,用户在客户端输入或者点击检索关键词,在获取所述用户的确认指令之后生成加载指令至服务器。所述用户指定加载的数据及为根据用户输入或者点击检索关键词的检索结果数据。

在步骤s202中,基于所述加载指令,按预设处理规则对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示。

具体地,所述预设处理规则包括服务器默认的初始排序算法。即以默认的方式对用户指定加载的数据进行初始排序并加载显示。

可选地,所述加载指令携带所述用户的用户信息,所述步骤202包括:

c1:根据所述用户的用户信息,获取所述用户的历史排序指令。

c2:根据所述历史排序指令中的排序算法,对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示。

在本申请实施例中,根据同一用户的历史排序指令,对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示,根据同一用户的用户习惯对数据进行排序,从而使得数据的排序人性化,可增强用户体验。

可选地,所述步骤202包括:

d1:获取所述加载指令中所述用户指定加载的数据根据历史用户排序指令进行排序的历史排序算法。

d2:根据所述历史排序算法中使用次数最多的排序算法,对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示。

在本申请实施例中,以数据被排序时使用的最多的排序算法作为最优排序算法,对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示,使得初始排序尽可能满足大多数用户的习惯,增强用户体验。

在步骤s203中,若检测到用户的排序指令,获取客户端当前页面的实时数据,并判断所述实时数据所属的数量级。

在步骤s204中,获取与所述实时数据所属的数量级对应的排序算法。

在步骤s205中,根据所述实时数据所属的数量级对应的排序算法以及所述排序指令携带的排序模式,对所述客户端当前页面的实时数据进行排序。

本实施例中,步骤s203至步骤s205的具体步骤参见实施例一步骤s101至步骤s103,在此不再赘述。

可选地,在所述步骤205之后还包括:根据排序结果更新加载所述客户端当前页面的实时数据。

由上可见,通过本申请实施例,服务器获取用户的加载指令,所述加载指令包括所述用户指定加载的数据,基于所述加载指令,按预设处理规则对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示,若检测到用户的排序指令,则获取客户端当前页面的实时数据,并判断所述实时数据所属的数量级,再获取与所述实时数据所属的数量级对应的排序算法,最后根据所述实时数据所属的数量级对应的排序算法以及所述排序指令携带的排序模式,对所述客户端当前页面的实时数据进行排序,本申请方案可根据实时数据的数量级选择相应的排序算法,在保证排序准确性的同时提高排序效率,加快数据加载的速度,从而减少用户的等待时间,增强用户体验。

应理解,所述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

实施例三

本申请实施例提供一种数据排序装置,如图3所示,本申请实施例中的数据排序装置300应用于服务器,包括:数据获取与判断单元301,排序算法获取单元302,数据排序单元303,其中:

数据获取与判断单元301,用于若检测到用户的排序指令,获取客户端当前页面的实时数据,并判断所述实时数据所属的数量级;

排序算法获取单元302,用于获取与所述实时数据所属的数量级对应的排序算法;

数据排序单元303,用于根据所述实时数据所属的数量级对应的排序算法以及所述排序指令携带的排序模式,对所述客户端当前页面的实时数据进行排序。

可选地,所述排序指令包括用户选择的排序基准类别,所述数据排序单元303包括:

第一待排序数据确定模块,用于若所述实时数据所属的数量级不高于十万级,则将所述实时数据中为排序基准类别的数据作为待排序数据;

关键数据确定模块,用于从所述待排序数据中随机选择一个数据作为关键数据;

第一数据比较模块,用于将所述待排序数据中除所述关键数据以外其他的待排序数据依次与所述关键数据进行大小比较;

第一排序模块,用于根据比较结果以及所述排序指令携带的排序模式,对所述待排序数据进行第一次排序;

第二排序模块,用于以所述关键数据为中心轴,将经过第一次排序的所述待排序数据分为第一部分和第二部分,从所述第一部分和所述第二部分中分别选取一个关键数据,将所述第一部分中除所述第一部分的关键数据以外其他的待排序数据依次与所述第一部分的关键数据进行大小比较,将所述第二部分中除所述第二部分的关键数据以外其他的待排序数据依次与所述第二部分的关键数据进行大小比较,根据比较结果以及所述排序指令携带的排序模式,分别对所述第一部分和第二部分中的数据进行排序,依次类推,直至所述待排序数据成为满足所述排序模式的有序数据。

可选地,所述数据排序单元303包括:

第二待排序数据确定模块,用于若所述实时数据所属的数量级为百万级,将所述实时数据中为排序基准类别的数据作为待排序数据;

数据划分模块,用于将所述待排序数据分为第一部分和第二部分,其中,所述第一部分中的待排序数据为有序数据;

第二数据比较模块,用于以所述第一部分中的待排序数据为基准,从所述第二部分中依次选择待排序数据与所述第一部分中的待排序数据进行大小比较;

插入排序模块,用于根据比较结果以及所述排序指令携带的排序模式,将所述第二部分中的待排序数据依次插入至所述第一部分的待排序数据中,完成排序。

可选地,所述数据排序装置还包括:

加载指令获取单元304,用于获取用户的加载指令,所述加载指令包括所述用户指定加载的数据;

初始排序加载单元305,用于基于所述加载指令,按预设处理规则对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示。

可选地,所述加载指令携带所述用户的用户信息,所述初始排序加载单元305包括:

历史排序指令获取模块,用于根据所述用户的用户信息,获取所述用户的历史排序指令;

第一初始排序加载模块,用于根据所述历史排序指令中的排序算法,对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示。

可选地,所述初始排序加载单元305包括:

历史排序算法获取模块,用于获取所述加载指令中所述用户指定加载的数据根据历史用户排序指令进行排序的历史排序算法;

第二初始排序加载模块,用于根据所述历史排序算法中使用次数最多的排序算法,对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示。

由上可见,通过本申请实施例,服务器若检测到用户的排序指令,则获取客户端当前页面的实时数据,并判断所述实时数据所属的数量级,再获取与所述实时数据所属的数量级对应的排序算法,最后根据所述实时数据所属的数量级对应的排序算法以及所述排序指令携带的排序模式,对所述客户端当前页面的实时数据进行排序,本申请方案可根据实时数据的数量级选择相应的排序算法,在保证排序准确性的同时提高排序效率,加快数据加载的速度,从而减少用户的等待时间,增强用户体验。

实施例四

本申请实施例提供一种数据排序装置,应用于数据排序的服务器,请参阅图4,本申请实施例中的数据排序装置包括:存储器401,一个或多个处理器402(图4中仅示出一个)及存储在存储器401上并可在处理器上运行的计算机程序。其中:存储器401用于存储软件程序以及模块,处理器402通过运行存储在存储器401的软件程序以及单元,从而执行各种功能应用以及数据处理,以获取上述预设事件对应的资源。具体地,处理器402通过运行存储在存储器401的上述计算机程序时实现以下步骤:

若检测到用户的排序指令,获取客户端当前页面的实时数据,并判断所述实时数据所属的数量级;

获取与所述实时数据所属的数量级对应的排序算法;

根据所述实时数据所属的数量级对应的排序算法以及所述排序指令携带的排序模式,对所述客户端当前页面的实时数据进行排序。

假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,处理器402通过运行存储在存储器401的上述计算机程序时还实现以下步骤:

获取用户的加载指令,所述加载指令包括所述用户指定加载的数据;

基于所述加载指令,按预设处理规则对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示。

在上述第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,所述加载指令携带所述用户的用户信息,处理器402通过运行存储在存储器401的所述基于所述加载指令,按预设处理规则对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示的步骤,包括:

根据所述用户的用户信息,获取所述用户的历史排序指令;

根据所述历史排序指令中的排序算法,对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示。

在上述第二种可能的实施方式作为基础而提供的第四种可能的实施方式中,处理器402通过运行存储在存储器401的所述基于所述加载指令,按预设处理规则对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示的步骤,包括:

获取所述加载指令中所述用户指定加载的数据根据历史用户排序指令进行排序的历史排序算法;

根据所述历史排序算法中使用次数最多的排序算法,对所述加载指令中所述用户指定加载的数据进行初始排序并加载显示。

在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础,或者上述第三种可能的实施方式作为基础,或者上述第四种可能的实施方式作为基础,而提供的第五种可能的实施方式中,处理器402通过运行存储在存储器401的所述根据所述实时数据所属的数量级对应的排序算法以及所述排序指令携带的排序模式,对所述客户端当前页面的实时数据进行排序的步骤包括:

若所述实时数据所属的数量级不高于十万级,则将所述实时数据中为排序基准类别的数据作为待排序数据;

从所述待排序数据中随机选择一个数据作为关键数据;

将所述待排序数据中除所述关键数据以外其他的待排序数据依次与所述关键数据进行大小比较;

根据比较结果以及所述排序指令携带的排序模式,对所述待排序数据进行第一次排序;

以所述关键数据为中心轴,将经过第一次排序的所述待排序数据分为第一部分和第二部分,从所述第一部分和所述第二部分中分别选取一个关键数据,将所述第一部分中除所述第一部分的关键数据以外其他的待排序数据依次与所述第一部分的关键数据进行大小比较,将所述第二部分中除所述第二部分的关键数据以外其他的待排序数据依次与所述第二部分的关键数据进行大小比较,根据比较结果以及所述排序指令携带的排序模式,分别对所述第一部分和第二部分中的数据进行排序,依次类推,直至所述待排序数据成为满足所述排序模式的有序数据。

在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础,或者上述第三种可能的实施方式作为基础,或者上述第四种可能的实施方式作为基础,或者上述第五种可能的实施方式作为基础,而提供的第六种可能的实施方式中,处理器402通过运行存储在存储器401的所述根据所述实时数据所属的数量级对应的排序算法以及所述排序指令携带的排序模式,对所述客户端当前页面的实时数据进行排序的步骤包括:

若所述实时数据所属的数量级为百万级,将所述实时数据中为排序基准类别的数据作为待排序数据;

将所述待排序数据分为第一部分和第二部分,其中,所述第一部分中的待排序数据为有序数据;

以所述第一部分中的待排序数据为基准,从所述第二部分中依次选择待排序数据与所述第一部分中的待排序数据进行大小比较;

根据比较结果以及所述排序指令携带的排序模式,将所述第二部分中的待排序数据依次插入至所述第一部分的待排序数据中,完成排序。

进一步,如图4所示,上述数据排序装置还可包括:一个或多个第一输入设备403(图4中仅示出一个)和一个或多个输出设备404(图4中仅示出一个)。存储器401、处理器402、输入设备403和输出设备404通过总线405连接。

由此可见,本申请方案可根据实时数据的数量级选择相应的排序算法,在保证排序准确性的同时提高排序效率,加快数据加载的速度,从而减少用户的等待时间,增强用户体验。

应当理解,在本申请实施例中,所称处理器402可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器401可以包括只读存储器和随机存取存储器,并向处理器402提供指令和数据。存储器401的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器401还可以存储设备类型的信息。

由上可见,通过本申请实施例,服务器若检测到用户的排序指令,则获取客户端当前页面的实时数据,并判断所述实时数据所属的数量级,再获取与所述实时数据所属的数量级对应的排序算法,最后根据所述实时数据所属的数量级对应的排序算法以及所述排序指令携带的排序模式,对所述客户端当前页面的实时数据进行排序,本申请方案可根据实时数据的数量级选择相应的排序算法,在保证排序准确性的同时提高排序效率,加快数据加载的速度,从而减少用户的等待时间,增强用户体验。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。

以上上述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1