CN106446295A - 数据排序方法及装置 - Google Patents
数据排序方法及装置 Download PDFInfo
- Publication number
- CN106446295A CN106446295A CN201611049088.1A CN201611049088A CN106446295A CN 106446295 A CN106446295 A CN 106446295A CN 201611049088 A CN201611049088 A CN 201611049088A CN 106446295 A CN106446295 A CN 106446295A
- Authority
- CN
- China
- Prior art keywords
- data
- acquisition system
- data acquisition
- sequence
- header
- 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.)
- Pending
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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0623—Item investigation
- G06Q30/0625—Directed, with specific intent or strategy
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Data Mining & Analysis (AREA)
- Entrepreneurship & Innovation (AREA)
- General Engineering & Computer Science (AREA)
- Game Theory and Decision Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据排序装置,包括:第一获取模块,用于在接收到排序指令时,获取排序指令对应的待排序数据集合中的第一数据集合;排序模块,用于按照预设排序规则对第一数据集合进行排序操作;第二获取模块,用于依次获取第二数据集合中的数据;插入模块,用于在每次获取的第二数据集合中的数据满足第一预设条件时,按照数据与第一数据集合中数据的大小关系将数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据。本发明还公开了一种数据排序方法。本发明实现了对数据进行排序并能够获得待排序数据集合中满足第二预设条件的数据,与现有的排序算法相比,大大降低了对数据进行排序的时间复杂度,提高了数据排序的效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据排序方法及装置。
背景技术
随着电商业务的快速发展,电商平台以及商家逐渐增多,用户越来越习惯通过电商购买各种商品。由于电商业务的需求多样性,电商平台经常会合并各渠道的业务数据,在合并业务数据时,往往需要通过整合所有的业务数据,找出销量最大的前N条商品、商品对应的促销员等,以便后续进行处理。另外,在购买某种商品时,用户往往需要将同类型的商品进行比较,以便于选择性价比较高的商品,在浏览商品的过程中,用户会根据销量、评价等搜索排名靠前的前N条商品进行浏览,此时,电商平台会根据用户需要推送排名靠前的前N条商品。
在根据用户需要推送排名靠前的前N条商品、或者在整合所有的业务数据以找出销量最大的前N条商品、商品对应的促销员时,均需要对业务数据进行排序。目前,常常采用经典排序算法对业务数据进行排序,但是,由于经典排序算法的时间复杂度也是O(n2),导致对业务数据进行排序时效率较低,尤其是在业务数据的数据量庞大的情况下。
发明内容
本发明提供一种数据排序方法及装置,旨在解决采用经典排序算法对业务数据进行排序的效率较低的技术问题。
为实现上述目的,本发明提供的一种数据排序装置,所述数据排序装置包括:
第一获取模块,用于在接收到排序指令时,获取所述排序指令对应的待排序数据集合中的第一数据集合,其中,所述第一数据集合中数据的个数小于所述待排序数据集合中数据的个数;
排序模块,用于按照预设排序规则对所述第一数据集合进行排序操作;
第二获取模块,用于依次获取第二数据集合中的数据,直至所述第二数据集合为空,其中,所述第二数据集合为待排序数据集合中除所述第一数据集合中的数据之外的其他数据的集合;
插入模块,用于在每次获取的所述第二数据集合中的数据满足第一预设条件时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据,直至所述第二数据集合为空,以获得所述待排序数据集合中满足第二预设条件的第三数据集合。
在一实施方式中,所述预设排序规则为从大到小的顺序,所述第二预设条件包括所述第三数据集合中最小的数据不小于所述待排序数据集合中除所述第三数据集合中的数据之外的数据中的最大的数据,所述第三数据集合中数据的个数与第一数据集合中数据的个数相同,所述插入模块包括:
第一确定单元,用于确定所述数据是否大于排序后的所述第一数据集合中的尾部数据;
第二确定单元,用于在所述数据大于所述尾部数据时,确定所述数据是否大于排序后的所述第一数据集合中的头部数据;
第一插入单元,用于在所述数据大于所述头部数据时,将所述数据插入所述第一数据集合中的头部数据之前作为排序后的所述第一数据集合的头部数据,并删除所述尾部数据。
在一实施方式中,所述插入模块还包括:
第二插入单元,用于在所述数据小于或等于所述头部数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述尾部数据。
在一实施方式中,所述预设排序规则为从小到大的顺序,所述第二预设条件包括所述第三数据集合中最小的数据不小于所述待排序数据集合中除所述第三数据集合中的数据之外的数据中的最大的数据,所述第三数据集合中数据的个数与第一数据集合中数据的个数相同,所述插入模块包括:
第三确定单元,用于确定所述数据是否大于排序后的所述第一数据集合中的头部数据;
第三插入单元,用于在所述数据大于所述头部数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述头部数据。
在一实施方式中,所述第二预设条件包括所述第三数据集合中最大的数据不大于所述待排序数据集合中除所述第三数据集合中的数据之外的数据中的最小的数据,所述第三数据集合中数据的个数与第一数据集合中数据的个数相同,所述插入模块包括:
第四确定单元,用于确定所述数据是否小于排序后的所述第一数据集合中的最大数据,其中,所述最大数据为排序后的所述第一数据集合中的头部数据与尾部数据中较大的数据;
第四插入单元,用于在所述数据小于所述最大数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述最大数据。
此外,为实现上述目的,本发明还提供一种数据排序方法,所述数据排序方法包括以下步骤:
在接收到排序指令时,获取所述排序指令对应的待排序数据集合中的第一数据集合,其中,所述第一数据集合中数据的个数小于所述待排序数据集合中数据的个数;
按照预设排序规则对所述第一数据集合进行排序操作;
依次获取第二数据集合中的数据,其中,所述第二数据集合为待排序数据集合中除所述第一数据集合中的数据之外的其他数据的集合;
在每次获取的所述第二数据集合中的数据满足第一预设条件时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据,直至所述第二数据集合为空,以获得所述待排序数据集合中满足第二预设条件的第三数据集合。
在一实施方式中,所述预设排序规则为从大到小的顺序,所述第二预设条件包括所述第三数据集合中最小的数据不小于所述待排序数据集合中除所述第三数据集合中的数据之外的数据中的最大的数据,所述第三数据集合中数据的个数与第一数据集合中数据的个数相同,所述按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据的步骤包括:
确定所述数据是否大于排序后的所述第一数据集合中的尾部数据;
在所述数据大于所述尾部数据时,确定所述数据是否大于排序后的所述第一数据集合中的头部数据;
在所述数据大于所述头部数据时,将所述数据插入所述第一数据集合中的头部数据之前作为排序后的所述第一数据集合的头部数据,并删除所述尾部数据。
在一实施方式中,所述确定所述数据是否大于排序后的所述第一数据集合中的头部数据的步骤之后,还包括:
在所述数据小于或等于所述头部数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述尾部数据。
在一实施方式中,所述预设排序规则为从小到大的顺序,所述第二预设条件包括所述第三数据集合中最小的数据不小于所述待排序数据集合中除所述第三数据集合中的数据之外的数据中的最大的数据,所述第三数据集合中数据的个数与第一数据集合中数据的个数相同,所述按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据的步骤包括:
确定所述数据是否大于排序后的所述第一数据集合中的头部数据;
在所述数据大于所述头部数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述头部数据。
在一实施方式中,所述第二预设条件包括所述第三数据集合中最大的数据不大于所述待排序数据集合中除所述第三数据集合中的数据之外的数据中的最小的数据,所述第三数据集合中数据的个数与第一数据集合中数据的个数相同,所述按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据的步骤包括:
确定所述数据是否小于排序后的所述第一数据集合中的最大数据,其中,所述最大数据为排序后的所述第一数据集合中的头部数据与尾部数据中较大的数据;
在所述数据小于所述最大数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述最大数据。
本发明通过在接收到排序指令时,第一获取模块获取所述排序指令对应的待排序数据集合中的第一数据集合,接着排序模块按照预设排序规则对所述第一数据集合进行排序操作,而后第二获取模块依次获取第二数据集合中的数据,最后在每次获取的所述第二数据集合中的数据满足第一预设条件时,插入模块按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据,直至所述第二数据集合为空,实现了对数据进行排序并能够获得待排序数据集合中满足第二预设条件的数据,与现有的排序算法相比,大大降低了对数据进行排序的时间复杂度,提高了数据排序的效率,尤其是在需要进行排序的数据量较为庞大的情况下,能够大大提高数据排序的效率,节约系统资源。
附图说明
图1为本发明数据排序装置第一实施例的功能模块示意图;
图2为采用冒泡排序对待排序数据集合进行排序的流程示意图;
图3为本实施例的数据排序装置对待排序数据集合进行排序的流程示意图;
图4为本发明数据排序装置第二实施例中插入模块的细化功能模块示意图;
图5为本发明数据排序装置第三实施例中插入模块的细化功能模块示意图;
图6为本发明数据排序装置第四实施例中插入模块的细化功能模块示意图;
图7为本发明数据排序方法第一实施例的流程示意图;
图8为本发明数据排序方法第二实施例中按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据步骤的细化流程示意图;
图9为本发明数据排序方法第三实施例中按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据步骤的细化流程示意图;
图10为本发明数据排序方法第四实施例中按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据步骤的细化流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种数据排序装置。参照图1,图1为本发明数据排序装置第一实施例的功能模块示意图。
在本实施例中,该数据排序装置包括:
第一获取模块10,用于在接收到排序指令时,获取所述排序指令对应的待排序数据集合中的第一数据集合,其中,所述第一数据集合中数据的个数小于所述待排序数据集合中数据的个数;
在本实施例中,在接收到排序指令时,第一获取模块10获取所述排序指令对应的待排序数据集合中的第一数据集合,其中,待排序数据集合中数据的个数N大于第一数据集合中数据的个数n。第一数据集合可以为数组、队列等数据格式的数据集合。
需要强调的是,在合并业务数据时,若需要找出销量最大的前N条商品或者某一商品对应的销量最大的前N个促销员时,可通过业务数据合并界面中销量最大的前N条商品的选项或者某一商品对应的销量最大的前N个促销员的选项触发对应的排序指令,其中,在该排序指令是通过销量最大的前N条商品的选项触发时,待排序数据集合为所有的商品,在该排序指令是通过某一商品对应的销量最大的前N个促销员的选项触发时,待排序数据集合为该上面所有促销员的销量;在用户浏览商品时,若用户需要根据销量、评价等浏览排名靠前的前N条商品,则可通过当前浏览界面中销量最大的前N条商品的选项或者评价最高的前N条商品的选项触发对应的排序指令,其中,在该排序指令是通过销量最大的前N条商品的选项触发时,待排序数据集合为当前浏览界面中的所有商品,在该排序指令是通过评价最高的前N条商品的选项触发时,待排序数据集合为当前浏览界面中的所有商品的评价。
排序模块20,用于按照预设排序规则对所述第一数据集合进行排序操作;
本实施例中,预设排序规则包括从大到小的顺序以及从小到大的顺序,具体地,排序模块20按照从大到小的顺序以或从小到大的顺序采用现有排序算法对所述第一数据集合进行排序操作,例如,排序模块20采用冒泡排序、插入排序或选择排序等排序算法对所述第一数据集合进行排序操作,当然,排序模块20也可以采用鸡尾酒排序、桶排序、计数排序、合并排序、原地合并排序、二叉排序树排序、鸽巢排序或基数排序等排序算法对所述第一数据集合进行排序操作。
第二获取模块30,用于依次获取第二数据集合中的数据,其中,所述第二数据集合为待排序数据集合中除所述第一数据集合中的数据之外的其他数据的集合;
其中,第二数据集合为待排序数据集合中除所述第一数据集合中的数据之外的其他数据的集合。本实施例中,第二获取模块30每次获取第二数据集合中的1个数据作,直至所述第二数据集合为空。
插入模块40,用于在每次获取的所述第二数据集合中数据满足第一预设条件时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据,直至所述第二数据集合为空,以获得所述待排序数据集合中满足第二预设条件的第三数据集合。
其中,将所述数据插入排序后的第一数据集合中是指,按照该数据与第一数据集合中数据的大小关系,将该数据插入至第一数据集合中合适的位置,以使插入该数据之后的第一数据集合中的仍然为按照预设排序规则排序后的数据集合。
本实施例中,在所述第二预设条件包括获得的数据为所述待排序数据集合中最大的数据,所述最大的数据的个数与第一数据集合中数据的个数相同时,第一预设条件包括数据大于第一数据集合中的最小数据,在每次获取的数据满足第一预设条件时,即获取到的数据大于第一数据集合中的最小数据时,插入模块40按照所述数据与第一数据集合中数据的大小关系将该数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据,即删除第一数据集合中的最小数据,以获得所述待排序数据集合中满足第二预设条件的数据,即获得待排序数据集合中最大的数据,且最大的数据的个数与第一数据集合中数据的个数相同。其中,在预设排序规则为从大到小的顺序,即排序模块20按照从大到小的顺序对所述第一数据集合进行排序操作时,该最小数据为第一数据集合中的尾部数据,在预设排序规则为从小到大的顺序,即排序模块20按照从小到大的顺序对所述第一数据集合进行排序操作时,该最小数据为第一数据集合中的头部数据。
在所述第二预设条件包括获得的数据为所述待排序数据集合中最小的数据,所述最小的数据的个数与第一数据集合中数据的个数相同时,第一预设条件包括数据小于第一数据集合中的最大数据,在每次获取的数据满足第一预设条件时,即获取到的数据小于第一数据集合中的最大数据时,插入模块40按照所述数据与第一数据集合中数据的大小关系将该数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据,即删除第一数据集合中的最大数据,以获得所述待排序数据集合中满足第二预设条件的数据,即获得待排序数据集合中最小的数据,所述最小的数据的个数与第一数据集合中数据的个数相同。其中,在预设排序规则为从大到小的顺序,即排序模块20按照从大到小的顺序对所述第一数据集合进行排序操作时,该最大数据为第一数据集合中的头部数据,在预设排序规则为从小到大的顺序,即排序模块20按照从小到大的顺序对所述第一数据集合进行排序操作时,该最大数据为第一数据集合中的尾部数据。
进一步地,在一实施例中,在获取的所述数据不满足第一预设条件时,直接抛弃该数据。
本实施例中,假设待排序数据集合中数据的个数为N,第一数据集合中数据的个数为n,第二数据集合中的数据个数为N-n,排序模块20按照预设排序规则对所述第一数据集合进行排序操作的时间复杂度为O(n2),插入模块40需要进行一次获取的所述数据是否满足第一预设条件的判断,在每次获取的所述数据满足第一预设条件时,插入模块40按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中的步骤最多需要进行n-1次比较,因此,将第二数据集合中的数据全部插入第一数据集合时的时间复杂度为O((1+n-1)(N-n))=O(n(N-n)),进而本实施例的排序算法的时间复杂度为O(n(N-n)+n2)=O(n*N),与经典排序算法的时间复杂度O(N2)相比,大大降低了对数据进行排序的时间复杂度,提高了数据排序的效率,尤其是在需要进行排序的数据量较为庞大的情况下,能够大大提高数据排序的效率,节约系统资源。
如图2及图3所示,其中,待排序数据集合的数据包括:1、2、3、4、5,图2及图3中的预设排序规则均为从小到大的顺序,第二预设条件包括获得的数据为所述待排序数据集合中的两个最小的数据,即第一数据集合中数据的个数为2,图2为采用冒泡排序对待排序数据集合进行排序的流程示意图,图3为本实施例的数据排序装置对待排序数据集合进行排序的流程示意图。图2中,对待排序数据集合进行排序操作的时间复杂度为O(52),图3中,对待排序数据集合进行排序操作的时间复杂度为O(2*5),因此,采用图3的排序算法能够大大降低了对数据进行排序的时间复杂度,提高了数据排序的效率。
本实施例提出的数据排序装置,通过在接收到排序指令时,第一获取模块10获取所述排序指令对应的待排序数据集合中的第一数据集合,接着排序模块20按照预设排序规则对所述第一数据集合进行排序操作,而后第二获取模块30依次获取第二数据集合中的数据,最后在每次获取的所述第二数据集合中数据满足第一预设条件时,插入模块40按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据,直至所述第二数据集合为空,实现了对数据进行排序并能够获得待排序数据集合中满足第二预设条件的数据,与现有的排序算法相比,大大降低了对数据进行排序的时间复杂度,提高了数据排序的效率,尤其是在需要进行排序的数据量较为庞大的情况下,能够大大提高数据排序的效率,节约系统资源。
基于第一实施例提出本发明数据排序装置的第二实施例,参照图4,在本实施例中,所述预设排序规则为从大到小的顺序,所述第二预设条件包括所述第三数据集合中最小的数据不小于所述待排序数据集合中除所述第三数据集合中的数据之外的数据中的最大的数据,所述第三数据集合中数据的个数与第一数据集合中数据的个数相同,插入模块40包括:
第一确定单元41,用于确定所述数据是否大于排序后的所述第一数据集合中的尾部数据;
本实施例中,由于排序模块20按照从大到小的顺序对所述第一数据集合进行排序操作,因此,第一数据集合中的尾部数据为第一数据集合中的最小数据,在需要获得的数据为待排序数据集合中最大的数据,且最大的数据的个数与第一数据集合中数据的个数相同时,首先通过第一确定单元41确定所述数据是否大于排序后的所述第一数据集合中的尾部数据,即获得的数据是否大于排序后的所述第一数据集合中的最小数据。
第二确定单元42,用于在所述数据大于所述尾部数据时,确定所述数据是否大于排序后的所述第一数据集合中的头部数据;
本实施例中,在第一确定单元41确定所述数据大于所述尾部数据,即获得的数据大于排序后的所述第一数据集合中的最小数据时,第二确定单元42确定所述数据是否大于排序后的所述第一数据集合中的头部数据,其中,由于排序模块20按照从大到小的顺序对所述第一数据集合进行排序操作,因此第一数据集合中的头部数据为第一数据集合中的最大数据,为进一步减少数据排序的事件复杂度,通过第二确定单元42确定所述数据是否大于第一数据集合中的最大数据。
第一插入单元43,用于在所述数据大于所述头部数据时,将所述数据插入所述第一数据集合中的头部数据之前作为排序后的所述第一数据集合的头部数据,并删除所述尾部数据。
本实施例中,在第二确定单元42确定所述数据大于所述头部数据、即所述数据大于第一数据集合中的最大数据时,为进一步减少数据排序的事件复杂度,第一插入单元43直接将所述数据插入所述第一数据集合中的头部数据之前,将该数据作为排序后的所述第一数据集合的头部数据,并删除所述尾部数据,即删除第一数据集合中的最小数据,进而,在第一数据集合的数据个数为n时,得到了n+1个数据中最大的n个数据。并且,通过第一插入单元43直接将所述数据插入头部数据之前作为排序后的所述第一数据集合的头部数据,无需在将所述数据插入第一数据集合时,逐个比较第一数据集合中的数据与该数据的大小,进一步减小了数据排序的时间复杂度。
进一步地,在一实施例中,插入模块40还包括:
第二插入单元,用于在所述数据小于或等于所述头部数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述尾部数据。
本实施例中,在第二确定单元42确定所述数据小于或等于所述头部数据、即所述数据小于或等于第一数据集合中的最大数据时,按照该数据与第一数据集合中数据的大小关系,将该数据插入至第一数据集合中合适的位置,以使插入该数据之后的第一数据集合中的仍然为按照预设排序规则排序后的数据集合。
本实施例提出的数据排序装置,通过第一确定单元41确定所述数据是否大于排序后的所述第一数据集合中的尾部数据,接着在所述数据大于所述尾部数据时,第二确定单元42确定所述数据是否大于排序后的所述第一数据集合中的头部数据,而后在所述数据大于所述头部数据时,第一插入单元43将所述数据插入所述第一数据集合中的头部数据之前作为排序后的所述第一数据集合的头部数据,并删除所述尾部数据,无需逐个比较第一数据集合中的数据与该数据的大小,进一步减小了数据排序的时间复杂度,提高了数据排序的效率。
基于第一实施例提出本发明数据排序装置的第三实施例,参照图5,在本实施例中,所述预设排序规则为从小到大的顺序,所述第二预设条件包括所述第三数据集合中最小的数据不小于所述待排序数据集合中除所述第三数据集合中的数据之外的数据中的最大的数据,所述第三数据集合中数据的个数与第一数据集合中数据的个数相同,所述插入模块40包括:
第三确定单元44,用于确定所述数据是否大于排序后的所述第一数据集合中的头部数据;
本实施例中,由于排序模块20按照从小到大的顺序对所述第一数据集合进行排序操作,因此,第一数据集合中的头部数据为第一数据集合中的最小数据,在需要获得的数据为待排序数据集合中最大的数据,且最大的数据的个数与第一数据集合中数据的个数相同时,通过第三确定单元44确定所述数据是否大于排序后的所述第一数据集合中的头部数据,即获得的数据是否大于排序后的所述第一数据集合中的最小数据。
第三插入单元45,用于在所述数据大于所述头部数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述头部数据。
本实施例中,在第三确定单元44确定所述数据是否大于排序后的所述第一数据集合中的头部数据,即获得的数据大于排序后的所述第一数据集合中的最小数据时,第三插入单元45按照该数据与第一数据集合中数据的大小关系,将该数据插入至第一数据集合中合适的位置,以使插入该数据之后的第一数据集合中的仍然为按照预设排序规则排序后的数据集合。
进一步地,本实施例中,第三插入单元45还用于在所述数据大于所述头部数据时,确定所述数据是否大于排序后的所述第一数据集合中的尾部数据;在所述数据大于所述尾部数据时,将所述数据插入所述第一数据集合中的尾部数据之后作为排序后的所述第一数据集合的尾部数据,并删除所述头部数据;在所述数据小于或等于所述尾部数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述头部数据。
本实施例中,在所述数据大于所述尾部数据、即所述数据大于第一数据集合中的最大数据时,为进一步减少数据排序的事件复杂度,第一插入单元43直接将所述数据插入所述第一数据集合中的尾部数据之后,将该数据作为排序后的所述第一数据集合的尾部数据,并删除所述头部数据,即删除第一数据集合中的最小数据,进而无需在将所述数据插入第一数据集合时,逐个比较第一数据集合中的数据与该数据的大小,进一步减小了数据排序的时间复杂度。在该数据小于或等于所述尾部数据、即所述数据小于或等于第一数据集合中的最大数据时,按照该数据与第一数据集合中数据的大小关系,将该数据插入至第一数据集合中合适的位置,并删除所述头部数据,以使插入该数据之后的第一数据集合中的仍然为按照预设排序规则排序后的数据集合。
本实施例提出的数据排序装置,通过第三确定单元44确定所述数据是否大于排序后的所述第一数据集合中的头部数据,接着在所述数据大于所述头部数据时,第三插入单元45按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述头部数据,实现了对数据进行排序并能够获得待排序数据集合中最大的数据,最大的数据的个数与第一数据集合中数据的个数相同,与现有的排序算法相比,大大降低了对数据进行排序的时间复杂度,进一步提高了数据排序的效率。
基于第一实施例提出本发明数据排序装置的第四实施例,参照图6,在本实施例中,所述第二预设条件包括所述第三数据集合中最大的数据不大于所述待排序数据集合中除所述第三数据集合中的数据之外的数据中的最小的数据,所述第三数据集合中数据的个数与第一数据集合中数据的个数相同,所述插入模块包括:
第四确定单元46,用于确定所述数据是否小于排序后的所述第一数据集合中的最大数据,其中,所述最大数据为排序后的所述第一数据集合中的头部数据与尾部数据中较大的数据;
本实施例中,由于获得的数据为所述待排序数据集合中最小的数据,所述最小的数据的个数与第一数据集合中数据的个数相同,因此,首先通过第四确定单元46确定所述数据是否小于排序后的所述第一数据集合中的最大数据。
第四插入单元47,用于在所述数据小于所述最大数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述最大数据。
在所述数据小于所述最大数据时,第四插入单元47按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除第一数据集合中的最大数据,进而得到待排序数据集合中最小的数据,所述最小的数据的个数与第一数据集合中数据的个数相同。
进一步地,在排序模块20按照从大到小的顺序或从小到大的顺序对所述第一数据集合进行排序操作,其数据排序以及获得待排序数据集合中最小的数据过程与上述实施例类似,在此不再赘述。
本实施例提出的数据排序装置,通过第四确定单元46确定所述数据是否小于排序后的所述第一数据集合中的最大数据,接着在所述数据小于所述最小数据时,第四插入单元47按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述最大数据,实现了对数据进行排序并能够获得待排序数据集合中最小的数据,最小的数据的个数与第一数据集合中数据的个数相同,与现有的排序算法相比,大大降低了对数据进行排序的时间复杂度,进一步提高了数据排序的效率。
本发明进一步提供一种数据排序方法。参照图7,图7为本发明数据排序方法第一实施例的流程示意图。
在本实施例中,该数据排序方法包括:
步骤S10,在接收到排序指令时,获取所述排序指令对应的待排序数据集合中的第一数据集合,其中,所述第一数据集合中数据的个数小于所述待排序数据集合中数据的个数;
在本实施例中,在接收到排序指令时,第一获取模块10获取所述排序指令对应的待排序数据集合中的第一数据集合,其中,待排序数据集合中数据的个数N大于第一数据集合中数据的个数n。第一数据集合可以为数组、队列等数据格式的数据集合。
需要强调的是,在合并业务数据时,若需要找出销量最大的前N条商品或者某一商品对应的销量最大的前N个促销员时,可通过业务数据合并界面中销量最大的前N条商品的选项或者某一商品对应的销量最大的前N个促销员的选项触发对应的排序指令,其中,在该排序指令是通过销量最大的前N条商品的选项触发时,待排序数据集合为所有的商品,在该排序指令是通过某一商品对应的销量最大的前N个促销员的选项触发时,待排序数据集合为该上面所有促销员的销量;在用户浏览商品时,若用户需要根据销量、评价等浏览排名靠前的前N条商品,则可通过当前浏览界面中销量最大的前N条商品的选项或者评价最高的前N条商品的选项触发对应的排序指令,其中,在该排序指令是通过销量最大的前N条商品的选项触发时,待排序数据集合为当前浏览界面中的所有商品,在该排序指令是通过评价最高的前N条商品的选项触发时,待排序数据集合为当前浏览界面中的所有商品的评价。
步骤S20,按照预设排序规则对所述第一数据集合进行排序操作;
本实施例中,预设排序规则包括从大到小的顺序以及从小到大的顺序,具体地,排序模块20按照从大到小的顺序以或从小到大的顺序采用现有排序算法对所述第一数据集合进行排序操作,例如,排序模块20采用冒泡排序、插入排序或选择排序等排序算法对所述第一数据集合进行排序操作,当然,排序模块20也可以采用鸡尾酒排序、桶排序、计数排序、合并排序、原地合并排序、二叉排序树排序、鸽巢排序或基数排序等排序算法对所述第一数据集合进行排序操作。
步骤S30,依次获取第二数据集合中的数据,其中,所述第二数据集合为待排序数据集合中除所述第一数据集合中的数据之外的其他数据的集合;
其中,第二数据集合为待排序数据集合中除所述第一数据集合中的数据之外的其他数据的集合。本实施例中,第二获取模块30每次获取第二数据集合中的1个数据作,直至所述第二数据集合为空。
步骤S40,在每次获取的所述第二数据集合中的数据满足第一预设条件时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据,直至所述第二数据集合为空,以获得所述待排序数据集合中满足第二预设条件的第三数据集合。
其中,将所述数据插入排序后的第一数据集合中是指,按照该数据与第一数据集合中数据的大小关系,将该数据插入至第一数据集合中合适的位置,以使插入该数据之后的第一数据集合中的仍然为按照预设排序规则排序后的数据集合。
本实施例中,在所述第二预设条件包括获得的数据为所述待排序数据集合中最大的数据,所述最大的数据的个数与第一数据集合中数据的个数相同时,第一预设条件包括数据大于第一数据集合中的最小数据,在每次获取的数据满足第一预设条件时,即获取到的数据大于第一数据集合中的最小数据时,插入模块40按照所述数据与第一数据集合中数据的大小关系将该数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据,即删除第一数据集合中的最小数据,以获得所述待排序数据集合中满足第二预设条件的数据,即获得待排序数据集合中最大的数据,且最大的数据的个数与第一数据集合中数据的个数相同。其中,在预设排序规则为从大到小的顺序,即排序模块20按照从大到小的顺序对所述第一数据集合进行排序操作时,该最小数据为第一数据集合中的尾部数据,在预设排序规则为从小到大的顺序,即排序模块20按照从小到大的顺序对所述第一数据集合进行排序操作时,该最小数据为第一数据集合中的头部数据。
在所述第二预设条件包括获得的数据为所述待排序数据集合中最小的数据,所述最小的数据的个数与第一数据集合中数据的个数相同时,第一预设条件包括数据小于第一数据集合中的最大数据,在每次获取的数据满足第一预设条件时,即获取到的数据小于第一数据集合中的最大数据时,插入模块40按照所述数据与第一数据集合中数据的大小关系将该数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据,即删除第一数据集合中的最大数据,以获得所述待排序数据集合中满足第二预设条件的数据,即获得待排序数据集合中最小的数据,所述最小的数据的个数与第一数据集合中数据的个数相同。其中,在预设排序规则为从大到小的顺序,即排序模块20按照从大到小的顺序对所述第一数据集合进行排序操作时,该最大数据为第一数据集合中的头部数据,在预设排序规则为从小到大的顺序,即排序模块20按照从小到大的顺序对所述第一数据集合进行排序操作时,该最大数据为第一数据集合中的尾部数据。
进一步地,在一实施例中,在获取的所述数据不满足第一预设条件时,直接抛弃该数据。
本实施例中,假设待排序数据集合中数据的个数为N,第一数据集合中数据的个数为n,第二数据集合中的数据个数为N-n,排序模块20按照预设排序规则对所述第一数据集合进行排序操作的时间复杂度为O(n2),插入模块40需要进行一次获取的所述数据是否满足第一预设条件的判断,在每次获取的所述数据满足第一预设条件时,插入模块40按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中的步骤最多需要进行n-1次比较,因此,将第二数据集合中的数据全部插入第一数据集合时的时间复杂度为O((1+n-1)(N-n))=O(n(N-n)),进而本实施例的排序算法的时间复杂度为O(n(N-n)+n2)=O(n*N),与经典排序算法的时间复杂度O(N2)相比,大大降低了对数据进行排序的时间复杂度,提高了数据排序的效率,尤其是在需要进行排序的数据量较为庞大的情况下,能够大大提高数据排序的效率,节约系统资源。
如图2及图3所示,其中,待排序数据集合的数据包括:1、2、3、4、5,图2及图3中的预设排序规则均为从小到大的顺序,第二预设条件包括获得的数据为所述待排序数据集合中的两个最小的数据,即第一数据集合中数据的个数为2,图2为采用冒泡排序对待排序数据集合进行排序的流程示意图,图3为本实施例的数据排序装置对待排序数据集合进行排序的流程示意图。图2中,对待排序数据集合进行排序操作的时间复杂度为O(52),图3中,对待排序数据集合进行排序操作的时间复杂度为O(2*5),因此,采用图3的排序算法能够大大降低了对数据进行排序的时间复杂度,提高了数据排序的效率。
本实施例提出的数据排序方法,通过第一获取模块10获取待排序数据集合中的第一数据集合,接着排序模块20按照预设排序规则对所述第一数据集合进行排序操作,而后第二获取模块30依次获取第二数据集合中的数据,直至所述第二数据集合为空,最后在每次获取的所述数据满足第一预设条件时,插入模块40按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据,实现了对数据进行排序并能够获得待排序数据集合中满足第二预设条件的数据,与现有的排序算法相比,大大降低了对数据进行排序的时间复杂度,提高了数据排序的效率,尤其是在需要进行排序的数据量较为庞大的情况下,能够大大提高数据排序的效率,节约系统资源。
基于第一实施例提出本发明数据排序方法的第二实施例,参照图8,在本实施例中,所述预设排序规则为从大到小的顺序,所述第二预设条件所述第三数据集合中最小的数据不小于所述待排序数据集合中除所述第三数据集合中的数据之外的数据中的最大的数据,所述第三数据集合中数据的个数与第一数据集合中数据的个数相同,步骤S40包括:
步骤S41,确定所述数据是否大于排序后的所述第一数据集合中的尾部数据;
本实施例中,由于排序模块20按照从大到小的顺序对所述第一数据集合进行排序操作,因此,第一数据集合中的尾部数据为第一数据集合中的最小数据,在需要获得的数据为待排序数据集合中最大的数据,且最大的数据的个数与第一数据集合中数据的个数相同时,首先通过第一确定单元41确定所述数据是否大于排序后的所述第一数据集合中的尾部数据,即获得的数据是否大于排序后的所述第一数据集合中的最小数据。
步骤S42,在所述数据大于所述尾部数据时,确定所述数据是否大于排序后的所述第一数据集合中的头部数据;
本实施例中,在第一确定单元41确定所述数据大于所述尾部数据,即获得的数据大于排序后的所述第一数据集合中的最小数据时,第二确定单元42确定所述数据是否大于排序后的所述第一数据集合中的头部数据,其中,由于排序模块20按照从大到小的顺序对所述第一数据集合进行排序操作,因此第一数据集合中的头部数据为第一数据集合中的最大数据,为进一步减少数据排序的事件复杂度,通过第二确定单元42确定所述数据是否大于第一数据集合中的最大数据。
步骤S43,在所述数据大于所述头部数据时,将所述数据插入所述第一数据集合中的头部数据之前作为排序后的所述第一数据集合的头部数据,并删除所述尾部数据。
本实施例中,在第二确定单元42确定所述数据大于所述头部数据、即所述数据大于第一数据集合中的最大数据时,为进一步减少数据排序的事件复杂度,第一插入单元43直接将所述数据插入所述第一数据集合中的头部数据之前,将该数据作为排序后的所述第一数据集合的头部数据,并删除所述尾部数据,即删除第一数据集合中的最小数据,进而,在第一数据集合的数据个数为n时,得到了n+1个数据中最大的n个数据。并且,通过第一插入单元43直接将所述数据插入头部数据之前作为排序后的所述第一数据集合的头部数据,无需在将所述数据插入第一数据集合时,逐个比较第一数据集合中的数据与该数据的大小,进一步减小了数据排序的时间复杂度。
进一步地,在一实施例中,步骤S40还包括:
在所述数据小于或等于所述头部数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述尾部数据。
本实施例中,在第二确定单元42确定所述数据小于或等于所述头部数据、即所述数据小于或等于第一数据集合中的最大数据时,按照该数据与第一数据集合中数据的大小关系,将该数据插入至第一数据集合中合适的位置,以使插入该数据之后的第一数据集合中的仍然为按照预设排序规则排序后的数据集合。
本实施例提出的数据排序方法,通过第一确定单元41确定所述数据是否大于排序后的所述第一数据集合中的尾部数据,接着在所述数据大于所述尾部数据时,第二确定单元42确定所述数据是否大于排序后的所述第一数据集合中的头部数据,而后在所述数据大于所述头部数据时,第一插入单元43将所述数据插入所述第一数据集合中的头部数据之前作为排序后的所述第一数据集合的头部数据,并删除所述尾部数据,无需逐个比较第一数据集合中的数据与该数据的大小,进一步减小了数据排序的时间复杂度,提高了数据排序的效率。
基于第一实施例提出本发明数据排序方法的第三实施例,参照图9,在本实施例中,所述预设排序规则为从小到大的顺序,所述第二预设条件包括所述第三数据集合中最小的数据不小于所述待排序数据集合中除所述第三数据集合中的数据之外的数据中的最大的数据,所述第三数据集合中数据的个数与第一数据集合中数据的个数相同,步骤S40包括:
步骤S44,确定所述数据是否大于排序后的所述第一数据集合中的头部数据;
本实施例中,由于排序模块20按照从小到大的顺序对所述第一数据集合进行排序操作,因此,第一数据集合中的头部数据为第一数据集合中的最小数据,在需要获得的数据为待排序数据集合中最大的数据,且最大的数据的个数与第一数据集合中数据的个数相同时,通过第三确定单元44确定所述数据是否大于排序后的所述第一数据集合中的头部数据,即获得的数据是否大于排序后的所述第一数据集合中的最小数据。
步骤S45,在所述数据大于所述头部数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述头部数据。
本实施例中,在第三确定单元44确定所述数据是否大于排序后的所述第一数据集合中的头部数据,即获得的数据大于排序后的所述第一数据集合中的最小数据时,第三插入单元45按照该数据与第一数据集合中数据的大小关系,将该数据插入至第一数据集合中合适的位置,以使插入该数据之后的第一数据集合中的仍然为按照预设排序规则排序后的数据集合。
进一步地,本实施例中,第三插入单元45还用于在所述数据大于所述头部数据时,确定所述数据是否大于排序后的所述第一数据集合中的尾部数据;在所述数据大于所述尾部数据时,将所述数据插入所述第一数据集合中的尾部数据之后作为排序后的所述第一数据集合的尾部数据,并删除所述头部数据;在所述数据小于或等于所述尾部数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述头部数据。
本实施例中,在所述数据大于所述尾部数据、即所述数据大于第一数据集合中的最大数据时,为进一步减少数据排序的事件复杂度,第一插入单元43直接将所述数据插入所述第一数据集合中的尾部数据之后,将该数据作为排序后的所述第一数据集合的尾部数据,并删除所述头部数据,即删除第一数据集合中的最小数据,进而无需在将所述数据插入第一数据集合时,逐个比较第一数据集合中的数据与该数据的大小,进一步减小了数据排序的时间复杂度。在该数据小于或等于所述尾部数据、即所述数据小于或等于第一数据集合中的最大数据时,按照该数据与第一数据集合中数据的大小关系,将该数据插入至第一数据集合中合适的位置,并删除所述头部数据,以使插入该数据之后的第一数据集合中的仍然为按照预设排序规则排序后的数据集合。
本实施例提出的数据排序方法,通过第三确定单元44确定所述数据是否大于排序后的所述第一数据集合中的头部数据,接着在所述数据大于所述头部数据时,第三插入单元45按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述头部数据,实现了对数据进行排序并能够获得待排序数据集合中最大的数据,最大的数据的个数与第一数据集合中数据的个数相同,与现有的排序算法相比,大大降低了对数据进行排序的时间复杂度,进一步提高了数据排序的效率。
基于第一实施例提出本发明数据排序方法的第四实施例,参照图10,在本实施例中,所述第二预设条件包括所述第三数据集合中最大的数据不大于所述待排序数据集合中除所述第三数据集合中的数据之外的数据中的最小的数据,所述第三数据集合中数据的个数与第一数据集合中数据的个数相同,步骤S40包括:
步骤S46,确定所述数据是否小于排序后的所述第一数据集合中的最大数据,其中,所述最大数据为排序后的所述第一数据集合中的头部数据与尾部数据中较大的数据;
本实施例中,由于获得的数据为所述待排序数据集合中最小的数据,所述最小的数据的个数与第一数据集合中数据的个数相同,因此,首先通过第四确定单元46确定所述数据是否小于排序后的所述第一数据集合中的最大数据。
步骤S47,在所述数据小于所述最大数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述最大数据。
在所述数据小于所述最大数据时,第四插入单元47按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除第一数据集合中的最大数据,进而得到待排序数据集合中最小的数据,所述最小的数据的个数与第一数据集合中数据的个数相同。
进一步地,在排序模块20按照从大到小的顺序或从小到大的顺序对所述第一数据集合进行排序操作,其数据排序以及获得待排序数据集合中最小的数据过程与上述实施例类似,在此不再赘述。
本实施例提出的数据排序方法,通过第四确定单元46确定所述数据是否小于排序后的所述第一数据集合中的最大数据,接着在所述数据小于所述最小数据时,第四插入单元47按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述最大数据,实现了对数据进行排序并能够获得待排序数据集合中最小的数据,最小的数据的个数与第一数据集合中数据的个数相同,与现有的排序算法相比,大大降低了对数据进行排序的时间复杂度,进一步提高了数据排序的效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据排序装置,其特征在于,所述数据排序装置包括:
第一获取模块,用于在接收到排序指令时,获取所述排序指令对应的待排序数据集合中的第一数据集合,其中,所述第一数据集合中数据的个数小于所述待排序数据集合中数据的个数;
排序模块,用于按照预设排序规则对所述第一数据集合进行排序操作;
第二获取模块,用于依次获取第二数据集合中的数据,其中,所述第二数据集合为待排序数据集合中除所述第一数据集合中的数据之外的其他数据的集合;
插入模块,用于在每次获取的所述第二数据集合中的数据满足第一预设条件时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据,直至所述第二数据集合为空,以获得所述待排序数据集合中满足第二预设条件的第三数据集合。
2.如权利要求1所述的数据排序装置,其特征在于,所述预设排序规则为从大到小的顺序,所述第二预设条件包括所述第三数据集合中最小的数据不小于所述待排序数据集合中除所述第三数据集合中的数据之外的数据中的最大的数据,所述第三数据集合中数据的个数与第一数据集合中数据的个数相同,所述插入模块包括:
第一确定单元,用于确定所述数据是否大于排序后的所述第一数据集合中的尾部数据;
第二确定单元,用于在所述数据大于所述尾部数据时,确定所述数据是否大于排序后的所述第一数据集合中的头部数据;
第一插入单元,用于在所述数据大于所述头部数据时,将所述数据插入所述第一数据集合中的头部数据之前作为排序后的所述第一数据集合的头部数据,并删除所述尾部数据。
3.如权利要求2所述的数据排序装置,其特征在于,所述插入模块还包括:
第二插入单元,用于在所述数据小于或等于所述头部数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述尾部数据。
4.如权利要求1所述的数据排序装置,其特征在于,所述预设排序规则为从小到大的顺序,所述第二预设条件包括所述第三数据集合中最小的数据不小于所述待排序数据集合中除所述第三数据集合中的数据之外的数据中的最大的数据,所述第三数据集合中数据的个数与第一数据集合中数据的个数相同,所述插入模块包括:
第三确定单元,用于确定所述数据是否大于排序后的所述第一数据集合中的头部数据;
第三插入单元,用于在所述数据大于所述头部数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述头部数据。
5.如权利要求1所述的数据排序装置,其特征在于,所述第二预设条件包括所述第三数据集合中最大的数据不大于所述待排序数据集合中除所述第三数据集合中的数据之外的数据中的最小的数据,所述第三数据集合中数据的个数与第一数据集合中数据的个数相同,所述插入模块包括:
第四确定单元,用于确定所述数据是否小于排序后的所述第一数据集合中的最大数据,其中,所述最大数据为排序后的所述第一数据集合中的头部数据与尾部数据中较大的数据;
第四插入单元,用于在所述数据小于所述最大数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述最大数据。
6.一种数据排序方法,其特征在于,所述数据排序方法包括以下步骤:
在接收到排序指令时,获取所述排序指令对应的待排序数据集合中的第一数据集合,其中,所述第一数据集合中数据的个数小于所述待排序数据集合中数据的个数;
按照预设排序规则对所述第一数据集合进行排序操作;
依次获取第二数据集合中的数据,其中,所述第二数据集合为待排序数据集合中除所述第一数据集合中的数据之外的其他数据的集合;
在每次获取的所述第二数据集合中的数据满足第一预设条件时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据,直至所述第二数据集合为空,以获得所述待排序数据集合中满足第二预设条件的第三数据集合。
7.如权利要求6所述的数据排序方法,其特征在于,所述预设排序规则为从大到小的顺序,所述第二预设条件包括所述第三数据集合中最小的数据不小于所述待排序数据集合中除所述第三数据集合中的数据之外的数据中的最大的数据,所述第三数据集合中数据的个数与第一数据集合中数据的个数相同,所述按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据的步骤包括:
确定所述数据是否大于排序后的所述第一数据集合中的尾部数据;
在所述数据大于所述尾部数据时,确定所述数据是否大于排序后的所述第一数据集合中的头部数据;
在所述数据大于所述头部数据时,将所述数据插入所述第一数据集合中的头部数据之前作为排序后的所述第一数据集合的头部数据,并删除所述尾部数据。
8.如权利要求7所述的数据排序方法,其特征在于,所述确定所述数据是否大于排序后的所述第一数据集合中的头部数据的步骤之后,还包括:
在所述数据小于或等于所述头部数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述尾部数据。
9.如权利要求6所述的数据排序方法,其特征在于,所述预设排序规则为从小到大的顺序,所述第二预设条件包括所述第三数据集合中最小的数据不小于所述待排序数据集合中除所述第三数据集合中的数据之外的数据中的最大的数据,所述第三数据集合中数据的个数与第一数据集合中数据的个数相同,所述按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据的步骤包括:
确定所述数据是否大于排序后的所述第一数据集合中的头部数据;
在所述数据大于所述头部数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述头部数据。
10.如权利要求6所述的数据排序方法,其特征在于,所述第二预设条件包括所述第三数据集合中最大的数据不大于所述待排序数据集合中除所述第三数据集合中的数据之外的数据中的最小的数据,所述第三数据集合中数据的个数与第一数据集合中数据的个数相同,所述按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除排序后的第一数据集合中一端的数据的步骤包括:
确定所述数据是否小于排序后的所述第一数据集合中的最大数据,其中,所述最大数据为排序后的所述第一数据集合中的头部数据与尾部数据中较大的数据;
在所述数据小于所述最大数据时,按照所述数据与第一数据集合中数据的大小关系将所述数据插入排序后的第一数据集合中,并删除所述最大数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611049088.1A CN106446295A (zh) | 2016-11-23 | 2016-11-23 | 数据排序方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611049088.1A CN106446295A (zh) | 2016-11-23 | 2016-11-23 | 数据排序方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106446295A true CN106446295A (zh) | 2017-02-22 |
Family
ID=58219428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611049088.1A Pending CN106446295A (zh) | 2016-11-23 | 2016-11-23 | 数据排序方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106446295A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558401A (zh) * | 2017-09-27 | 2019-04-02 | 北京国双科技有限公司 | 数据排序方法及装置 |
CN114201238A (zh) * | 2022-02-16 | 2022-03-18 | 深圳市紫川软件有限公司 | 一种基于大数据的智慧企业软件组件管理系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1960194A (zh) * | 2006-10-31 | 2007-05-09 | 华为技术有限公司 | 排序装置 |
CN101162471A (zh) * | 2007-11-15 | 2008-04-16 | 华为技术有限公司 | 一种插入排序的方法和装置 |
US8655821B2 (en) * | 2009-02-04 | 2014-02-18 | Konstantinos (Constantin) F. Aliferis | Local causal and Markov blanket induction method for causal discovery and feature selection from data |
CN104077361A (zh) * | 2014-06-09 | 2014-10-01 | 汉柏科技有限公司 | 一种用于大数据的排序方法及系统 |
-
2016
- 2016-11-23 CN CN201611049088.1A patent/CN106446295A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1960194A (zh) * | 2006-10-31 | 2007-05-09 | 华为技术有限公司 | 排序装置 |
CN101162471A (zh) * | 2007-11-15 | 2008-04-16 | 华为技术有限公司 | 一种插入排序的方法和装置 |
US8655821B2 (en) * | 2009-02-04 | 2014-02-18 | Konstantinos (Constantin) F. Aliferis | Local causal and Markov blanket induction method for causal discovery and feature selection from data |
CN104077361A (zh) * | 2014-06-09 | 2014-10-01 | 汉柏科技有限公司 | 一种用于大数据的排序方法及系统 |
Non-Patent Citations (1)
Title |
---|
旭东的博客: "海量数据处理的 Top K算法(问题) 小顶堆实现", 《HTTPS://WWW.CNBLOGS.COM/XUDONG-BUPT/ARCHIVE/2013/03/20/2971262.HTML》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558401A (zh) * | 2017-09-27 | 2019-04-02 | 北京国双科技有限公司 | 数据排序方法及装置 |
CN109558401B (zh) * | 2017-09-27 | 2021-09-17 | 北京国双科技有限公司 | 数据排序方法及装置 |
CN114201238A (zh) * | 2022-02-16 | 2022-03-18 | 深圳市紫川软件有限公司 | 一种基于大数据的智慧企业软件组件管理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105550356B (zh) | 一种浏览内容预加载方法及终端 | |
CN104133820B (zh) | 内容推荐方法及内容推荐装置 | |
CN107193987B (zh) | 获取与页面相关的搜索词的方法、装置和系统 | |
CN103885987B (zh) | 一种音乐推荐方法和系统 | |
CN104572717B (zh) | 信息搜索方法和装置 | |
CN102591948B (zh) | 一种基于用户行为分析的搜索结果改进的方法及其系统 | |
CN108288208B (zh) | 基于图像内容的展示对象确定方法、装置、介质及设备 | |
CN105589929B (zh) | 图像检索方法和装置 | |
CN109101658A (zh) | 信息搜索方法、装置及设备/终端/服务器 | |
CN105138558A (zh) | 基于用户访问内容的实时个性化信息采集方法 | |
CN101477563A (zh) | 一种短文本聚类的方法、系统及其数据处理装置 | |
CN108804516A (zh) | 相似用户查找装置、方法及计算机可读存储介质 | |
CN108197311A (zh) | 房源数据聚合展示方法、装置、设备及可读存储介质 | |
CN104731809B (zh) | 对象的属性信息的处理方法及装置 | |
CN109885651B (zh) | 一种问题推送方法和装置 | |
CN110032675A (zh) | 基于共现词的检索方法、装置、设备及可读存储介质 | |
CN105279206A (zh) | 一种智能推荐方法和系统 | |
CN106446295A (zh) | 数据排序方法及装置 | |
CN110427404A (zh) | 一种区块链跨链数据检索系统 | |
CN105159927B (zh) | 目标文本主题词的选取方法、装置及终端 | |
CN106021615A (zh) | 题目搜索优化方法及装置 | |
CN110019913A (zh) | 图片匹配方法、用户设备、存储介质及装置 | |
CN106649385B (zh) | 基于HBase数据库的数据排序方法和装置 | |
CN106294832A (zh) | 浏览器页面缓存处理方法及装置 | |
CN111324725B (zh) | 一种话题获取方法、终端、计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170222 |
|
RJ01 | Rejection of invention patent application after publication |