[发明专利]数据排序方法、装置、设备、存储介质及程序产品在审
申请号: | 202110496458.0 | 申请日: | 2021-05-07 |
公开(公告)号: | CN113204681A | 公开(公告)日: | 2021-08-03 |
发明(设计)人: | 高翅;齐伟 | 申请(专利权)人: | 北京柠檬微趣科技股份有限公司 |
主分类号: | G06F16/903 | 分类号: | G06F16/903;G06F16/901 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 杜叶蕊;刘芳 |
地址: | 100044 北京市西城*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 排序 方法 装置 设备 存储 介质 程序 产品 | ||
本发明实施例提供一种数据排序方法、装置、设备、存储介质及程序产品,该方法包括:获取数据排序更新请求,数据排序更新请求中包括:待更新数据和更新类型;根据数据排序更新请求,从存储有原数据的二叉堆对应的循环双向链表中根据当前游标节点指针的指向确定当前游标节点;根据更新类型及当前游标节点确定待更新数据在二叉堆中对应的待更新节点;根据待更新节点和待更新数据对原数据进行更新及排序操作。本发明实施例能够通过循环双向链表实现对游标节点的快速定位,进而实现对待更新节点的快速定位,降低对原数据进行更新及排序操作的时间复杂度。
技术领域
本发明涉及数据排序技术领域,尤其涉及一种数据排序方法、装置、设备、存储介质及程序产品。
背景技术
二叉堆(Binary Heap)是一种基于二叉树的数据结构,广泛应用于实现从大量数据中选取最大或最小的N个数据以及优先级队列,即实现数据排序。
现有技术中基于指针链的二叉堆的数据排序方法应用于实现优先级队列如定时器队列时,在原数据中进行待更新数据的增加或删除操作时要定位尾节点,定位尾节点的过程需要根据二叉堆中各节点的子节点指针从根节点一步步定位到尾节点。
然而,上述现有方法中定位尾节点的时间复杂度高,导致进行待更新数据的增加或删除操作的时间复杂度高,即对原数据进行更新及排序操作的时间复杂度高。
发明内容
本发明实施例提供一种数据排序方法、装置、设备、存储介质及程序产品,以解决现有的基于指针链的二叉堆的数据排序方法中,定位尾节点的时间复杂度高,导致进行待更新数据的增加或删除操作的时间复杂度高的技术问题。
第一方面,本发明实施例提供一种数据排序方法,所述方法包括:
获取数据排序更新请求,所述数据排序更新请求中包括:待更新数据和更新类型;
根据数据排序更新请求,从存储有原数据的二叉堆对应的循环双向链表中根据当前游标节点指针的指向确定当前游标节点,当前游标节点为所述二叉堆中第一个叶子节点或半节点,所述二叉堆为根节点在最上层,叶子节点在下层的二叉堆,所述第一个叶子节点为最上层最左侧的叶子节点,所述半节点为只有左子节点的节点;
根据所述更新类型及所述当前游标节点确定所述待更新数据在所述二叉堆中对应的待更新节点;
根据所述待更新节点和所述待更新数据对所述原数据进行更新及排序操作。
在一种可能的实施方式中,所述根据所述更新类型及所述当前游标节点确定所述待更新数据在所述二叉堆中对应的待更新节点,包括:
若确定所述更新类型为增加数据类型,则确定待更新数据对应的待更新节点为当前游标节点的待增加的子节点;
若确定所述更新类型为删除数据类型,则确定待更新数据对应的待更新节点为尾节点,并确定待更新数据对应的待删除节点。
在一种可能的实施方式中,所述若确定待更新节点为游标节点待增加的子节点,则所述根据所述待更新节点和所述待更新数据对所述原数据进行更新及排序操作,包括:
在游标节点增加子节点作为待更新节点,将所述待更新数据添加到待更新节点中,以完成对原数据的更新操作;
根据所述待更新节点中的待更新数据与所述待更新节点对应的父节点中的数据,确定所述待更新节点与所述待更新节点对应的父节点是否需要进行交换操作,若是,则对所述待更新节点对应的父节点及所述待更新节点进行交换操作,以完成对原数据的排序操作。
在一种可能的实施方式中,所述若确定待更新节点为尾节点,则所述根据所述待更新节点和所述待更新数据对所述原数据进行更新及排序操作,包括:
删除尾节点,以完成对原数据的更新操作;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京柠檬微趣科技股份有限公司,未经北京柠檬微趣科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110496458.0/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置