[发明专利]数据处理方法及装置、存储介质及电子设备在审
申请号: | 202010690105.X | 申请日: | 2020-07-16 |
公开(公告)号: | CN111914125A | 公开(公告)日: | 2020-11-10 |
发明(设计)人: | 梁喆;李磊 | 申请(专利权)人: | 北京爱芯科技有限公司 |
主分类号: | G06F16/901 | 分类号: | G06F16/901;G06F16/903;G06K9/00;G06K9/62 |
代理公司: | 北京超凡宏宇专利代理事务所(特殊普通合伙) 11463 | 代理人: | 唐正瑜 |
地址: | 100082 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据处理 方法 装置 存储 介质 电子设备 | ||
本申请涉及数据处理技术领域,提供一种数据处理方法及装置、存储介质及电子设备。其中,数据处理方法包括:获取待处理数据以及初始化好的堆空间,堆空间中的每个数据存储单元表示堆结构中的一个节点,堆结构的类型为小顶堆或大顶堆;将每个待处理数据与堆顶节点中存储的数据进行比较,若比较结果表明其满足加入堆结构的条件,则将待处理数据存储至堆顶节点中,将其与堆结构的其他节点中存储的数据进行比较,并根据比较结果确定堆结构的节点中数据的存储位置,以使堆结构在其节点中存储待处理数据后仍然维持原来的类型;读取堆结构的节点中存储的数据。上述数据处理方法通过构造堆来解决TopK问题,极大降低了TopK算法的时间复杂度。
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种数据处理方法及装置、存储介质及电子设备。
背景技术
如何从大量数据中快速找到最大或最小的K个数据(简称TopK问题)是数据处理领域的常见问题之一。涉及TopK问题的业务场景有很多:例如,在人脸识别任务中,从人脸特征库中快速找到与某张图像最相似的K个人,又例如,在搜索任务中,根据搜索标签在目标库中快速检索出与该标签匹配程度最高的K个网页(或音频、视频、图像、文件)等。
在现有技术中,通常采用一些排序算法解决TopK问题。然而,常用的插入排序等经典算法虽然逻辑简单,但时间复杂度较高,难以在短时间内解决TopK问题,导致相应的业务进度受到影响。
发明内容
本申请实施例的目的在于提供一种数据处理方法及装置、存储介质及电子设备,以改善上述技术问题。
为实现上述目的,本申请提供如下技术方案:
第一方面,本申请实施例提供一种数据处理方法,包括:获取多个待处理数据以及初始化好的堆空间,所述堆空间中的每个数据存储单元表示堆结构中的一个节点,所述堆结构的类型为小顶堆或大顶堆;将每个待处理数据与堆顶节点中存储的数据进行比较,若比较结果表明所述待处理数据满足加入所述堆结构的条件,则将所述待处理数据存储至所述堆顶节点中,将所述待处理数据与所述堆结构的其他节点中存储的数据进行比较,并根据比较结果确定所述堆结构的节点中数据的存储位置,以使所述堆结构在其节点中存储所述待处理数据后仍然维持原来的类型;读取所述堆结构的节点中存储的数据。
上述数据处理方法通过构造堆来解决TopK问题,由于每个待处理数据加入到堆结构中(含加入后的堆结构调整操作)平均只需执行logK次比较,从而极大降低了TopK算法的时间复杂度。并且,上述方法不同于一般的堆排序算法,并不需要利用待处理数据逐步构造完全二叉树,堆结构占用的存储空间是事先分配并初始化好的(相当于完全二叉树已经构建好),只需将待处理数据加入到堆结构中,从而有利于提高数据处理效率。
在第一方面的一种实现方式中,所述堆结构的类型为小顶堆,所述将每个待处理数据与堆顶节点中存储的数据进行比较,若比较结果表明所述待处理数据满足加入所述堆结构的条件,则将所述待处理数据存储至所述堆顶节点中,将所述待处理数据与所述堆结构的其他节点中存储的数据进行比较,并根据比较结果确定所述堆结构的节点中数据的存储位置,包括:将每个待处理数据与堆顶节点中存储的数据进行比较,若所述待处理数据大于所述堆顶节点中存储的数据,则将所述待处理数据存储至所述堆顶节点中;从所述堆顶节点开始,若当前节点存在子节点,则将所述当前节点中存储的数据与其子节点中存储的数据进行比较,若其中的最小数据对应的节点为所述当前节点,则终止比较过程,若其中的最小数据对应的节点为所述当前节点的子节点,则将所述当前节点中存储的数据与该子节点中存储的数据进行交换,并将该子节点作为新的所述当前节点继续进行比较,直至所述当前节点不存在子节点或者比较过程终止。
在上述实现方式中,向堆结构中加入待处理数据时,对于节点中存储的数据的比较是逐层进行的,从而可以通过硬件进行流水作业,进一步加快数据处理速度,改善算法吞吐率并降低设备功耗。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京爱芯科技有限公司,未经北京爱芯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010690105.X/2.html,转载请声明来源钻瓜专利网。