CN113111227A - 数据处理方法、装置、电子设备及存储介质 - Google Patents
数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113111227A CN113111227A CN202110400643.5A CN202110400643A CN113111227A CN 113111227 A CN113111227 A CN 113111227A CN 202110400643 A CN202110400643 A CN 202110400643A CN 113111227 A CN113111227 A CN 113111227A
- Authority
- CN
- China
- Prior art keywords
- index
- interval
- binary tree
- node
- data
- 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
Images
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/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- 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/903—Querying
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请适用于计算机技术领域,提供了数据处理方法、装置、电子设备及存储介质,包括:获取原数据,所述原数据包括各个预设的索引区间以及与所述索引区间对应的索引结果;根据各个所述索引区间的区间端点值及所述索引结果,构建得到目标二叉树数据;其中,所述目标二叉树数据为以所述区间端点值中的中位数为根节点的二叉树数据,并且,所述目标二叉树数据的左子树包括小于所述根节点的各个所述区间端点值,所述目标二叉树数据的右子树包括大于所述根节点的各个所述区间端点值,所述目标二叉树数据的各个叶子节点为各个所述索引区间分别对应的索引结果。本申请实施例能够提供一种便于数据查找的数据存储方式。
Description
技术领域
本申请属于计算机技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
在四轮定位仪应用中,通常提前将车轮高度的各个数值范围与其对应的车轮参数(例如前束、前倾)的标准值进行对应存储,得到关联数据。当需要对当前的车辆进行车轮定位时,只需输入当前车辆的车轮高度,即可通过确定该车辆的车轮高度所在的数值范围,获取与该数值范围对应存储的标准值作为当前车辆的车轮参数的标准值。这里的车轮高度的各个数值范围可以称为索引区间,与该数值范围对应的车轮参数的标准值可以称为索引结果,在其它应用场景中,也存在着这种以某种数据的各个数值范围作为索引区间,以另一个数据作为索引结果的关联数据。
目前,对上述类似的关联数据进行存储时,通常是无序存储,或者是通过数据库或者表格的方式,按照索引区间的的区间端点值从小到大的顺序对各对关联数据进行存储的。这些存储方式导致后续在进行数据查找时,需要依次遍历各对关联数据直至查找到对应的索引区间,得到对应的索引结果。当关联数据的数量庞大时,这种存储方式会导致数据查找过程复杂,效率较低。
发明内容
有鉴于此,本申请实施例提供了数据处理方法、装置及电子设备,以解决现有技术中如何提供一种便于数据查找的数据存储方式的问题。
本申请实施例的第一方面提供了一种数据处理方法,包括:
获取原数据,所述原数据包括各个预设的索引区间以及与所述索引区间对应的索引结果;
根据各个所述索引区间的区间端点值及所述索引结果,构建得到目标二叉树数据;其中,所述目标二叉树数据为以所述区间端点值中的中位数为根节点的二叉树数据,并且,所述目标二叉树数据的左子树包括小于所述根节点的各个所述区间端点值,所述目标二叉树数据的右子树包括大于所述根节点的各个所述区间端点值,所述目标二叉树数据的各个叶子节点为各个所述索引区间分别对应的索引结果。
可选地,所述根据各个所述索引区间的区间端点值及所述索引结果,构建得到目标二叉树数据,包括:
根据各个所述索引区间的所述区间端点值,得到区间端点数组;所述区间端点数组包括按序排列的各个所述区间端点值;
按照二分法将所述区间端点数组划分为至少两个有序的子数组,并构建第一二叉树数据;其中,所述第一二叉树数据的每个节点与所述区间端点数组的各个区间端点值一一对应,且所述第一二叉树数据以所述区间端点数组中的中位数为根节点,以小于所述根节点的子数组作为左子树,以大于所述根节点的子数组作为右子树;
根据所述第一二叉树数据的根节点,为所述左子树中数值最大的节点增加右子节点,以及为所述右子树中数值最小的节点增加左子节点,得到第二二叉树数据;
确定所述第二二叉树数据中的待处理节点,并为各个所述待处理节点添加对应的索引结果作为叶子节点,得到目标二叉树数据;所述待处理节点为所述第二二叉树数据中至多存在一个子节点的节点。
可选地,所述按照二分法将所述区间端点数组划分为至少两个有序的子数组,并构建第一二叉树数据,包括:
以所述区间端点数组作为第一级数组,按照二分法逐级二分所述区间端点数组,得到由所述第一级数组及各个子数组逐级按序组成的目标数组集合;
对于各个所述目标数组集合中的各级数组,依次以所述数组的中位数作为根节点,以所述数组中小于所述中位数的各个所述区间端点值构成左子树,以所述数组中大于所述中位数的各个所述区间端点值构成作为右子树,逐级构建各层二叉树数据,直至所述目标数组集合中的各个数组均已构建为对应层级的二叉树数据,得到第一二叉树数据。
可选地,在所述获取原数据之后,还包括:
对于每个索引区间,为所述索引区间的两个区间端点值分别确定对应的端点类型,并将所述区间端点值、所述端点类型及所述索引区间对应的索引结果关联存储至多重映射容器中;
对应地,所述为各个所述待处理节点添加对应的索引结果作为叶子节点,得到目标二叉树数据,包括:
对于各个所述待处理节点,根据所述待处理节点与所述待处理节点的父节点的连接关系及所述多重映射容器,确定所述待处理节点的索引结果及待连接位置;
将所述待处理节点的索引结果作为叶子节点,并将所述叶子节点连接至所述待处理节点的所述待连接位置,得到目标二叉树数据。
可选地,在所述构建得到目标二叉树数据之后,还包括:
获取输入的索引值;
根据所述索引值及所述目标二叉树数据,查找所述索引值对应的索引结果。
可选地,所述根据所述索引值及所述目标二叉树数据,查找所述索引值对应的索引结果,包括:
根据所述索引值与所述目标二叉树数据的根节点的比较结果,确定目标子树;所述目标子树包括所述根节点对应的左子树或者右子树;
根据所述索引值及所述目标子树,确定目标索引区间,并获取与所述目标索引区间的区间端点值相对应的所述叶子节点,得到所述索引值对应的索引结果;其中,所述目标索引区间为所述索引值所在的索引区间。
可选地,所述数据处理方法应用于四轮定位仪,所述索引区间为车辆的车轮的高度区间,所述索引结果为所述车轮对应的参数的标准值。
本申请实施例的第二方面提供了一种数据处理装置,包括:
原数据获取单元,用于获取原数据,所述原数据包括各个预设的索引区间以及与所述索引区间对应的索引结果;
目标二叉树数据构建单元,用于根据各个所述索引区间的区间端点值及所述索引结果,构建得到目标二叉树数据;其中,所述目标二叉树数据为以所述区间端点值中的中位数为根节点的二叉树数据,并且,所述目标二叉树数据的左子树包括小于所述根节点的各个所述区间端点值,所述目标二叉树数据的右子树包括大于所述根节点的各个所述区间端点值,所述目标二叉树数据的各个叶子节点为各个所述索引区间分别对应的索引结果。
可选地,所述目标二叉树数据构建单元,包括数组确定模块、第一二叉树数据构建模块、第二二叉树数据构建模块及目标二叉树数据构建模块:
数组确定模块,用于根据各个所述索引区间的所述区间端点值,得到区间端点数组;所述区间端点数组包括按序排列的各个所述区间端点值;
第一二叉树数据构建模块,用于按照二分法将所述区间端点数组划分为至少两个有序的子数组,并构建第一二叉树数据;其中,所述第一二叉树数据的每个节点与所述区间端点数组的各个区间端点值一一对应,且所述第一二叉树数据以所述区间端点数组中的中位数为根节点,以小于所述根节点的子数组作为左子树,以大于所述根节点的子数组作为右子树;
第二二叉树数据构建模块,用于根据所述第一二叉树数据的根节点,为所述左子树中数值最大的节点增加右子节点,以及为所述右子树中数值最小的节点增加左子节点,得到第二二叉树数据;
目标二叉树数据构建模块,用于确定所述第二二叉树数据中的待处理节点,并为各个所述待处理节点添加对应的索引结果作为叶子节点,得到目标二叉树数据;所述待处理节点为所述第二二叉树数据中至多存在一个子节点的节点。
可选地,若所述区间端点数组中包含偶数个区间端点值,则以位于所述区间端点数组最中间的两个区间端点值中的任意一个作为所述第一二叉树数据的根节点。
可选地,所述第一二叉树数据构建模块,具体用于以所述区间端点数组作为第一级数组,按照二分法逐级二分所述区间端点数组,得到由所述第一级数组及各个子数组逐级按序组成的目标数组集合;对于各个所述目标数组集合中的各级数组,依次以所述数组的中位数作为根节点,以所述数组中小于所述中位数的各个所述区间端点值构成左子树,以所述数组中大于所述中位数的各个所述区间端点值构成作为右子树,逐级构建各层二叉树数据,直至所述目标数组集合中的各个数组均已构建为对应层级的二叉树数据,得到第一二叉树数据。
可选地,所述数据处理装置还包括:
关联存储单元,用于对于每个索引区间,为所述索引区间的两个区间端点值分别确定对应的端点类型,并将所述区间端点值、所述端点类型及所述索引区间对应的索引结果关联存储至多重映射容器中;
对应地,所述目标二叉树数据构建模块,用于对于各个所述待处理节点,根据所述待处理节点与所述待处理节点的父节点的连接关系及所述多重映射容器,确定所述待处理节点的索引结果及待连接位置;将所述待处理节点的索引结果作为叶子节点,并将所述叶子节点连接至所述待处理节点的所述待连接位置,得到目标二叉树数据。
可选地,所述数据处理装置还包括:
索引值获取单元,获取输入的索引值;
查找单元,用于根据所述索引值及所述目标二叉树数据,查找所述索引值对应的索引结果。
可选地,所述查找单元,具体用于根据所述索引值与所述目标二叉树数据的根节点的比较结果,确定目标子树;所述目标子树包括所述根节点对应的左子树或者右子树;根据所述索引值及所述目标子树,确定目标索引区间,并获取与所述目标索引区间的区间端点值相对应的所述叶子节点,得到所述索引值对应的索引结果;其中,所述目标索引区间为所述索引值所在的索引区间。
可选地,所述数据处理装置具体应用于四轮定位仪,所述索引区间为车辆的车轮的高度区间,所述索引结果为所述车轮对应的参数的标准值。
本申请实施例的第三方面提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,当所述处理器执行所述计算机程序时,使得电子设备实现如所述数据处理方法的步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得电子设备实现如所述数据处理方法的步骤。
本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面中任一项所述的数据处理方法。
本申请实施例与现有技术相比存在的有益效果是:本申请实施例中,在获取包括各个预设的索引区间和索引区间对应的索引结果的原数据后,根据各个索引区间的区间端点值和索引结果,构建得到目标二叉树数据。由于构建的该目标二叉树数据为以索引区间的区间端点值中的中位数为根节点,以小于该根节点的各个区间端点值作为左子树,以大于根节点的各个区间端点值作为右子树,并以各个索引区间对应的索引结果作为叶子节点的二叉树数据,因此能够将各个索引区间有序地二分为二叉树结构数据,以便于后续根据该目标二叉树数据的快速地确定索引区间,获取对应的叶子节点,得到所需的索引结果,从而实现一种有序高效,便于数据查找的数据存储方式。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一种数据处理方法的实现流程示意图;
图2是本申请实施例提供的一种目标二叉树数据的示例图;
图3是本申请实施例提供的一种第一二叉树数据的示例图;
图4是本申请实施例提供的一种第二二叉树数据的示例图;
图5是本申请实施例提供的数据处理装置的示意图;
图6是本申请实施例提供的电子设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
目前,对于由索引区间和索引结果组成的各对关联数据进行存储时,通常是无序存储,或者是按照索引区间的的区间端点值从小到大的顺序对各对关联数据进行存储的。这种存储方式导致后续在进行数据查找时,需要依次遍历各对关联数据直至查找到对应的索引区间,得到对应的索引结果。当关联数据的数量庞大时,这种存储方式会导致数据查找过程复杂,效率较低。为了解决该技术问题,本申请实施例提供了一种数据处理方法、装置、电子设备及存储介质,在获取包括各个预设的索引区间和索引区间对应的索引结果的原数据后,根据各个索引区间的区间端点值和索引结果,构建得到目标二叉树数据。由于构建的该目标二叉树数据为以索引区间的区间端点值中的中位数为根节点,以小于该根节点的各个区间端点值作为左子树,以大于根节点的各个区间端点值作为右子树,并以各个索引区间对应的索引结果作为叶子节点的二叉树数据,因此能够将各个索引区间有序地二分为二叉树结构数据,以便于后续根据该目标二叉树数据的快速地确定索引区间,获取对应的叶子节点,得到所需的索引结果,从而实现一种有序高效,便于数据查找的数据存储方式。
实施例一:
图1示出了本申请实施例提供的一种数据处理方法的流程示意图,详述如下:
在S101中,获取原数据,所述原数据包括各个预设的索引区间以及与所述索引区间对应的索引结果。
本申请实施例中,预设的索引区间,即作为索引条件的预设数值范围,每个预设的索引区间均存在对应的一个索引结果,该索引结果可以为数值、数值范围(例如0.1~0.2)字符串、字符串范围(例如AA~AZ),对象指针、图片等任意一种或者多种数据形式。示例性地,各个预设的索引区间可以为年龄的数值范围,索引结果可以为对应的标准血压值,例如,若26岁以上30岁以下对应的标准血压值为115mmHg,30岁以上35岁以下对应的标准血压值为117mmHg,则可以“26~30”作为一个索引区间,以数值“115”作为该索引区间对应的索引结果;以及,以“30~35”作为另一个索引区间,以数值“117”作为该索引区间对应的索引结果。示例性地,各个预设的索引区间可以为血压的数值范围,索引结果为血压类型;当血压在115~130范围内时属于正常血压类型,当血压在130~139时属于正常高值血压,则可以“115~130”作为一个索引区间,以字符串“正常血压”作为该索引区间对应的索引结果;以及,以“130~139”作为另一个索引区间,以字符串“正常高值血压”作为对应的索引结果。
本申请实施例中的原数据为包含各个预设的索引区间,以及包含与该各个索引区间对应存储的索引结果的数据。在一个实施例中,该原数据可以为可扩展标记语言(Extensible Markup Language,XML)格式的数据,如下所示:
<row>
<Min>27</Min>
<Max>30</Max>
<Value>-0.12</Value>
</row>
<row>
<Min>30</Min>
<Max>38</Max>
<Value>-0.07</Value>
</row>
<row>
<Min>38</Min>
<Max>49</Max>
<Value>-0.03</Value>
</row>
<row>
<Min>49</Min>
<Max>55</Max>
<Value>0.02</Value>
</row>
<row>
<Min>55</Min>
<Max>63</Max>
<Value>0.05</Value>
</row>
<row>
<Min>63</Min>
<Max>80</Max>
<Value>0.10</Value>
</row>
其中,一对<row>标签封装一对关联数据,其中标签<Min>用于封装索引区间的最小值(即该索引区间的左区间端点值),标签<Max>用于封装索引区间的最大值(即该索引区间的右区间端点值),标签<Value>用于封装该索引区间对应的索引结果。示例性地,第一个<row>标签封装的为索引区间为“27~30”,对应的索引结果为“-0.12”的关联数据。可以通过获取预设的XML文件,解析该XML文件包含的XML格式的各对关联数据,得到各个索引区间及对应的索引结果。通常,获取XML格式的原数据后,是以顺序存储的形式存储在表格中,例如下表所示:
表1:
上述按照表格进行存储的方式,导致后续在数据查找时,需要按序遍历各个索引区间,从而导致数据查询效率较低。而本申请实施例中,在获取到上述的原数据后,不以表格的形式对原数据进行存储,而是通过以下的步骤S102来实现对原数据的存储。
在S102中,根据各个所述索引区间的区间端点值及所述索引结果,构建得到目标二叉树数据;其中,所述目标二叉树数据为以所述区间端点值中的中位数为根节点的二叉树数据,并且,所述目标二叉树数据的左子树包括小于所述根节点的各个所述区间端点值,所述目标二叉树数据的右子树包括大于所述根节点的各个所述区间端点值,所述目标二叉树数据的各个叶子节点为各个所述索引区间分别对应的索引结果。
本申请实施例中,在获取原数据,解析到原数据包含的各个索引区间和索引结果后,根据各个索引区间对应的区间端点值和索引结果,构建得到目标二叉树数据,实现对原数据中的索引区间和索引结果的对应存储。该目标二叉树数据具体以所有区间端点值中的中位数作为根节点,以小于该根节点的各个区间端点值作为左子树的节点,以大于该根节点的各个区间端点值作为右子树的节点,从而,各个索引区间二分为两个部分,以方便后续的比较查找。并且,该目标二叉树的叶子节点为索引区间对应的索引结果,使得后续通过查找目标二叉树数据最终到达目标二叉树数据的末端终点时,刚好得到对应的索引结果。具体地,该目标二叉树的左子树中数值最大的区间端点值、该目标二叉树的右子树中数值最小的区间端点值还与上述的中位数相连接,以便于完整地定位索引区间。示例性地,上述示例的XML格式的原始数据中,其各个区间端点值去重后包括27、30、38、49、55、63、80这7个值,其对应的区间端点值中位数49,因此以49为根节点,以小于49的区间端点值:27、30、38作为左子树的节点,大于49的区间端点值55、63、80作为右子树的节点,得到如图2所示的目标二叉树数据。
可选地,上述的步骤S102,具体包括:
A1:根据各个所述索引区间的所述区间端点值,得到区间端点数组;所述区间端点数组包括按序排列的各个所述区间端点值;
A2:按照二分法将所述区间端点数组划分为至少两个有序的子数组,并构建第一二叉树数据;其中,所述第一二叉树数据的每个节点与所述区间端点数组的各个区间端点值一一对应,且所述第一二叉树数据以所述区间端点数组中的中位数为根节点,以小于所述根节点的子数组作为左子树,以大于所述根节点的子数组作为右子树;
A3:根据所述第一二叉树数据的根节点,为所述左子树中数值最大的节点增加右子节点,以及为所述右子树中数值最小的节点增加左子节点,得到第二二叉树数据;
A4:确定所述第二二叉树数据中的待处理节点,所述待处理节点为所述第二二叉树数据中至多存在一个子节点的节点;
A5:为各个所述待处理节点添加对应的索引结果作为叶子节点,得到目标二叉树数据。
在步骤A1中,解析原数据,得到原始数据中各个索引区间的区间端点值,并将区间端点值去重后,存储至数组中。之后,再对该数组进行排序,得到区间端点数组,该区间端点数组即为由按序排列的各个区间端点值组成的数组。示例性地,将以上示例的XML格式的原数据的各个索引区间的区间端点值进行去重和排序后,得到的区间端点数组为:[27 30 3849 55 63 80]。
在步骤A2中,将步骤A1的区间端点数组划分为多个有序的子数组,并根据区间端点数组和这些子数组,构建得到第一二叉树数据。具体地,求取区间端点数组的中位数,并将区间端点数组中,小于该中位数的区间端点值按序组合得到第一子数组,将大于该中位数的区间端点值按序组合得到第二子数组。之后,以该区间端点数组作为根节点,以第一子数组作为左子树,以第二子数组作为右子树,构建得到第一二叉树数据。其中,第一二叉树数据的左子树,具体以该第一子数组的中位数作为左子树的根节点,也即作为第一二叉树数据的根节点的左子节点,从而实现左子树与第一二叉树数据的根节点连接;第一二叉树数据的右子树,具体以该第二子数组的中位数作为右子树的根节点,也即作为第一二叉树数据的根节点的右子节点,从而实现右子树与第一二叉树数据的根节点连接。
具体地,所述步骤A2,包括:
以所述区间端点数组作为第一级数组,按照二分法逐级二分所述区间端点数组,得到由所述第一级数组及各个子数组逐级按序组成的目标数组集合;
对于各个所述目标数组集合中的各级数组,依次以所述数组的中位数作为根节点,以所述数组中小于所述中位数的各个所述区间端点值构成左子树,以所述数组中大于所述中位数的各个所述区间端点值构成作为右子树,逐级构建各层二叉树数据,直至所述目标数组集合中的各个数组均已构建为对应层级的二叉树数据,得到第一二叉树数据。
本申请实施例中,以区间端点数组为第一级数组,按照二分法逐级二分该区间端点数组。具体地,以将区间端点数组中的中位数作为分界点,将区间端点数组二分为两个第二级数组;若对于每个第二级数组,若该第二级数组包含的区间端点值的数目大于4,则继续将该第二级数组二分为第三级数组。同样地,若第三级数组包含的区间端点值的数目大于4,则可以继续二分为第四级数组。以此类推,将区间端点数组二分为各级子数组,其中,最后一级子数组包含的区间端点值的数目为3或者4。将区间端点数组作为第一级数组,并将各个子数组作为各级数组,按序组合得到包含各级数组的目标数组集合。
对于各个目标数组集合中的各级数组,即第一级数组(区间端点数组)和该第一级数组对应的各个子数组,均以该数组的中位数作为根节点,以该数组中小于该中位数的区间端点值作为左子树,以该数组中大于该中位数的区间端点值作为右子树,逐级构建各层二叉树数据。当目标数组集合中的各个数组均以构建为对应层级的二叉树数据,即最后一级子数组构建为最后一级的子树时,得到第一二叉树数据。由此构建得到的第一二叉树数据中,区间端点数组的中位数即为整个第一二叉树数据的根节点,也可以称为该第一叉树数据的第一级数据的根节点,而区间端点数组二分到的各个子数组的中位数为第一二叉树数据的各级子树分别对应的根节点,并且,对于存在下一级子树的根节点,均可以根据区间端点值与该根节点的大小关系,得到与该根节点对应的左子树(由小于该根节点的各个区间端点值组成)和右子树(由大于该根节点的各个区间端点值组成)。
示例性地,上述的区间端点数组[27 30 38 49 55 63 80]中的中位数为49,根据该中位数,将该区间端点数组划分为第二级子数组:[27 30 38]和[55 63 80]。之后,以区间端点数组的中位数“49”作为一整个二叉树数据的根节点,以数组[27 30 38]的区间端点值组成左子树,以数组[55 63 80]的区间端点值组成右子树,得到如图3所示的第一二叉树数据。其中,左子树自身的根节点为数组[27 30 38]的中位数“30”,该中位数同样将左子树细分为小于“30”的左边部分“27”,以及大于“30”的右边部分“38”。同样地,右子树自身的根节点为数组[55 63 80]的中位数“63”。以此类推,当子数组包含的区间端点值的数目大于4时,可以继续确定该子数组的中位数,并二分得到更多的子数组,对应可以构建下一级的子树。
在步骤A3中,在得到第一二叉树数据后,将第一二叉树数据的根节点,也即区间端点数组的中位数添加至左子树中数值最大的节点的右子节点中,以及,添加至右子树中数值最小的节点的左子节点中,得到第二二叉树数据,使得该第二二叉树数据能够串联覆盖所有索引区间。例如,基于图4的第一二叉树数据,其左子树中数值最大的节点,也即最靠近右边的节点为节点“38”,为该节点添加一个右子节点,且该右子节点等于根节点的值“49”;图3的第一二叉树数据的右子树中数值最小的节点,也即最靠近左边的节点为节点“55”,为该节点添加一个左子节点,且该左子节点等于根节点的值“49”,从而,得到如图4所示的第二二叉树数据。
在步骤A4中,在得到能够完整串联覆盖所有索引区间的第二二叉树数据后,为该第二二叉树数据添加索引结果作为叶子节点,从而得到能够完整表达索引区间及其对应的索引结果的目标二叉树数据。具体地,从该第二二叉树数据中确定至多存在一个子节点的节点(即该节点的左右子节点任意一方为空或者该节点的左右子节点都为空),并将该类节点称为待处理节点,该待处理节点即为能够添加对应的索引结果的节点。具体地,对于每个待处理节点,根据其在第二二叉树数据中具体的位置情况确定该待处理节点与周围节点共同组成索引区间,之后从原数据确定该索引区间对应的索引结果作为当前待处理节点的索引结果,并将该索引结果作为待处理节点的叶子节点,与该待处理节点进行连接。示例性地,如图4所示的第二二叉树数据中,节点“27”没有存在任何一个子节点,即该节点满足“至多存在一个子节点”的条件,因此将节点“27”作为一个待处理节点;根据该待处理节点“27”与其周围连接的节点“30”,确定该待处理节点对应的索引区间为“27~30”,根据该索引区间,查询原始数据,即可得到对应的索引结果“-0.12”,并将该索引结果作为该待处理节点的子节点与该该待处理节点连接。如图4所示的待处理节点还包括节点“38”、节点“55”、节点“80”以及左右子树中的两个节点“49”,为这些待处理节点同样找到对应的索引区间,确定对应的索引结果作为叶子节点,与该待处理节点连接。当所有待处理节点均添加了对应的叶子节点后,即可得到如图2所示的目标二叉树数据。
本申请实施例中,由于能够通过数组排列及二分法构建初步的第一二叉树数据,以及根据第一二叉树数据补充得到能够串联覆盖所有索引区间的第二二叉树数据,再为第二二叉树数据添加索引结果作为叶子节点,从而能够逐步准确地构建得到能够完整描述各个索引区间及其对应的索引结果的目标二叉树数据。
可选地,若所述区间端点数组中包含偶数个区间端点值,则以位于所述区间端点数组最中间的两个区间端点值中的任意一个作为所述第一二叉树数据的根节点。
本申请实施例中,在上述的区间端点数组中包含的区间端点值为偶数个时,此时若按一般的中位数求法,求得的中位数为中间的两个区间端点值的平均数,该平均数并不能作为能够体现完整索引区间的数据,因此,该平均数不适合作为二叉树数据的节点。此时,具体可以定位区间端点数组中处于最中间的两个区间端点值,并将这两个区间端点值中的任意一个作为当前的中位数,即作为当前第一二叉树数据的根节点,从而使得构建得到的第一二叉树数据能够与实际的索引区间相对应。示例性地,若区间端点数组为:[27 3038 55 63 80],则此时可以“38”或者“55”作为第一二叉树数据的根节点。
可选地,在所述获取原数据之后,还包括:
对于每个索引区间,为所述索引区间的两个区间端点值分别确定对应的端点类型,并将所述区间端点值、所述端点类型及所述索引区间对应的索引结果关联存储至多重映射容器中;
对应地,所述为各个所述待处理节点添加对应的索引结果作为叶子节点,得到目标二叉树数据,包括:
对于各个所述待处理节点,根据所述待处理节点与所述待处理节点的父节点的连接关系及所述多重映射容器,确定所述待处理节点的索引结果及待连接位置;
将所述待处理节点的索引结果作为叶子节点,并将所述叶子节点连接至所述待处理节点的所述待连接位置,得到目标二叉树数据。
本申请实施例中,对于每个索引区间,包括两个区间端点值:端点类型为“最小值”的左区间端点值,以及端点类型为“最大值”右区间端点值。而对于原数据中的各个索引区间为数值连续的区间时,则相邻的两个索引区间之间存在对应不同端点类型的相同区间端点值。因此,本申请实施例具体可以通过允许存储重复元素的多重映射容器multimap来存储区间端点值、区间端点值的端点类型及其对应的索引结果的关联关系。该多重映射容器multimap具体可以区间端点值作为multimap的key值,以区间端点值的端点类型和当该区间端点值为该端点类型时所在索引区间对应的索引结果组成包含两个元素的value数据,从而实现区间端点值、区间端点值的端点类型以及对应的索引结果的关联存储。示例性地,上述示例的原数据,在多重映射容器multimap中的具体存储情况可以如表2所示:
表2:
其中,对于一个key值对应两行value值,其中第一行value值为索引结果,第二行value值为端点类型,其中“0”表示“最小值”类型,“1”表示“最大值”类型。
对应地,在之后的步骤A4中,对于各个待处理节点,可以根据该待处理节点与待处理节点的父节点的连接关系,确定该待处理节点当前的端点类型及其待连接位置,该待连接位置即为该待处理节点需要连接叶子节点的位置。其中,若待处理节点连接于其父节点的左边时,即该待处理节点属于其父节点对应的左子节点时,确定该待处理节点当前的端点类型为“最小值”,其对应的需要连接叶子节点的待连接位置为右侧;相反地,若待处理节点为连接于其父节点的右边时,即该待处理节点属于其父节点对应的右子节点时,确定该待处理节点当前的端点类型为“最大值”,其对应的需要连接叶子节点的待连接位置为左侧。之后,根据该端点类型以及该待处理节点的值,查询上述的多重映射容器multimap,得到该待处理节点对应的索引结果。示例性地,如图4所示的第二二叉树数据中,待处理节点“27”连接于其父节点“30”的左边,即待连接节点为父节点“30”的左子节点,则可确定待处理节点“27”的端点类型为“最小值”,其对应的待连接位置为右侧。在确定了待处理节点“27”的端点类型后,根据值“27”及该端点类型“最小值”查询对应关系如表2所示的多重映射容器multimap,得到该待处理节点对应的索引结果“-0.12”。
对于每个待处理节点,在确定了其对应的索引结果及待连接位置后,即可将该索引结果作为该待处理节点的叶子节点,连接于该待处理节点的该待连接位置上,从而得到既包含索引区间的各个区间端点值,又包含索引结果的目标二叉树数据。
本申请实施例中,由于对于连续的各个索引区间,存在重复的区间端点值,因此能够通过区分区间端点值的端点类型以及通过支持重复的元素保存多映射容器multimap,准确地实现不同索引区间的区间端点值及其对应的索引结果的存储,使得后续能够根据该多映射容器准确有效地为待处理节点添加对应的叶子节点,得到准确的目标二叉树数据。
可选地,在上述的步骤S102之后,还包括:
获取输入的索引值;
根据所述索引值及所述目标二叉树数据,查找所述索引值对应的索引结果。
本申请实施例中索引值为用户输入的用于查找对应的索引结果的数值。示例性地,通过接收用户的触控指令、键盘输入指令或者语音输入指令,获取用户输入的索引值。
在获取到索引值之后,可以根据该索引值查找上述构建的以中位数作为根节点的目标二叉树数据,通过将该索引值与目标二叉树数据的根节点及各个父节点进行比较,判断索引方向,并按照该判断出的索引方向进行逐级查找,直至查找到叶子节点,将该叶子节点的值作为该索引值对应的索引结果。
本申请实施例中,由于在获取输入的索引值后,通过上述构建的目标二叉树快速地确定索引区间,获取对应的叶子节点,得到所需的索引结果,因此能够提高数据查询效率。
可选地,所述根据所述索引值及所述目标二叉树数据,查找所述索引值对应的索引结果,包括:
根据所述索引值与所述目标二叉树数据的根节点的比较结果,确定目标子树;所述目标子树包括所述根节点对应的左子树或者右子树;
根据所述索引值及所述目标子树,确定目标索引区间,并获取与所述目标索引区间的区间端点值相对应的所述叶子节点,得到所述索引值对应的索引结果;其中,所述目标索引区间为所述索引值所在的索引区间。
本申请实施例中,在获取到索引值后,具体根据该索引值与目标二叉树数据的根节点之间的比较结果,确定目标子树。该目标子树为该根节点对应的左子树或者右子树。具体地,若该索引值小于该目标二叉树的根节点,则将该根节点对应的左子树确定为目标子树。若该索引值大于该目标二叉树的根节点,则将该根节点对应的右子树确定为目标子树。
在确定了目标子树后,同样将该索引节点与该目标子树的根节点进行比较,从而确定下一级的索引方向,即确定接下来需要查找的子树为目标子树的左子树还是右子树,以此类推,直至查找到与该索引值对应的索引区间,即目标索引区间,并获取该目标索引区间的端点值对应的叶子节点的值,即可得到当前的索引值对应的索引结果。具体地,当根据索引值逐级比较直至查找到存在叶子节点的节点(称为目标节点)时,则可将该目标节点以及该目标节点父节点,确定当前的目标索引区间,并以该目标节点对应的叶子节点的值作为索引结果。
示例性地,以如图2所示的二叉树数据作为目标二叉树数据,对上述的查找过程进行示例说明:
获取当前输入的索引值“28”后,先将该索引值“28”与目标二叉树数据的根节点“49”进行比较,比较结果为28小于49,因此将根节点“49”对应的左子树作为目标子树进行查找;在目标子树进行查找时,继续将索引值“28”与该目标子树的根节点“30”进行比较,比较结果为28小于30,则继续往根节点“30”对应的左子树进行查找,此时查找到存在叶子节点的节点“27”;由于“28”大于“27”,因此确定该索引值对应的目标索引区间为“27~30”,并获取与该节点“27”相连的叶子节点“-0.12”,得到最终该索引值对应的索引结果为“-0.12”。
本申请实施例中,由于能够根据索引值与目标二叉树数据的根节点的比较结果,准确地确定目标子树,缩小查找范围,快速地确定索引值对应的索引区间,得到对应的叶子节点作为索引结果,因此能够提高数据查询效率。
可选地,上述的数据处理方法具体应用于四轮定位仪,所述索引区间为车辆的车轮的高度区间,所述索引结果为所述车轮对应的参数的标准值。
本申请实施例中,四轮定位仪常常需要根据输入的车轮的高度值,查找对应的高度区间,并确定该高度区间对应的参数的标准值,因此四轮定位仪中,可以以车轮的高度区间作为索引区间,以对应的参数的标准值作为索引结果,通过本申请实施例的数据处理方法构建得到目标二叉树数据实现车轮的高度区间及其参数的标准值的对应存储,并通过该目标二叉树数据高效准确地实现参数的标准值查找,从而提高四轮定位仪的工作效率。其中,本申请实施例中车轮可以包括前轮和后轮,前轮对应的参数可以包括前轮前束、前轮前倾、前轮内倾、前轮外倾中的任意一项或者多项,后轮对应的参数可以包括后轮前束、后轮前倾、后轮内倾、后轮外倾中的任意一项或者多项。通过以车辆的前轮的高度区间作为索引区间,以前轮的参数的标准值作为索引结果;或者,以车辆的后轮的高度区间作为索引区间,以后轮的参数的标准值作为索引结果,实现上述的数据处理方法。
本申请实施例中,在获取包括各个预设的索引区间和索引区间对应的索引结果的原数据后,根据各个索引区间的区间端点值和索引结果,构建得到目标二叉树数据。由于构建的该目标二叉树数据为以索引区间的区间端点值中的中位数为根节点,以小于该根节点的各个区间端点值作为左子树,以大于根节点的各个区间端点值作为右子树,并以各个索引区间对应的索引结果作为叶子节点的二叉树数据,因此能够将各个索引区间有序地二分为二叉树结构数据,以便于后续根据该目标二叉树数据的快速地确定索引区间,获取对应的叶子节点,得到所需的索引结果,从而实现一种有序高效,便于数据查找的数据存储方式。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
实施例二:
图5示出了本申请实施例提供的一种数据处理装置的结构示意图,为了便于说明,仅示出了与本申请实施例相关的部分:
该数据处理装置包括:原数据获取单元51、目标二叉树数据构建单元52。其中:
原数据获取单元51,用于获取原数据,所述原数据包括各个预设的索引区间以及与所述索引区间对应的索引结果。
目标二叉树数据构建单元52,用于根据各个所述索引区间的区间端点值及所述索引结果,构建得到目标二叉树数据;其中,所述目标二叉树数据为以所述区间端点值中的中位数为根节点的二叉树数据,并且,所述目标二叉树数据的左子树包括小于所述根节点的各个所述区间端点值,所述目标二叉树数据的右子树包括大于所述根节点的各个所述区间端点值,所述目标二叉树数据的各个叶子节点为各个所述索引区间分别对应的索引结果。
可选地,所述目标二叉树数据构建单元52,包括数组确定模块、第一二叉树数据构建模块、第二二叉树数据构建模块及目标二叉树数据构建模块:
数组确定模块,用于根据各个所述索引区间的所述区间端点值,得到区间端点数组;所述区间端点数组包括按序排列的各个所述区间端点值;
第一二叉树数据构建模块,用于按照二分法将所述区间端点数组划分为至少两个有序的子数组,并构建第一二叉树数据;其中,所述第一二叉树数据的每个节点与所述区间端点数组的各个区间端点值一一对应,且所述第一二叉树数据以所述区间端点数组中的中位数为根节点,以小于所述根节点的子数组作为左子树,以大于所述根节点的子数组作为右子树;
第二二叉树数据构建模块,用于根据所述第一二叉树数据的根节点,为所述左子树中数值最大的节点增加右子节点,以及为所述右子树中数值最小的节点增加左子节点,得到第二二叉树数据;
目标二叉树数据构建模块,用于确定所述第二二叉树数据中的待处理节点,并为各个所述待处理节点添加对应的索引结果作为叶子节点,得到目标二叉树数据;所述待处理节点为所述第二二叉树数据中至多存在一个子节点的节点。
可选地,若所述区间端点数组中包含偶数个区间端点值,则以位于所述区间端点数组最中间的两个区间端点值中的任意一个作为所述第一二叉树数据的根节点。
可选地,所述第一二叉树数据构建模块,具体用于以所述区间端点数组作为第一级数组,按照二分法逐级二分所述区间端点数组,得到由所述第一级数组及各个子数组逐级按序组成的目标数组集合;对于各个所述目标数组集合中的各级数组,依次以所述数组的中位数作为根节点,以所述数组中小于所述中位数的各个所述区间端点值构成左子树,以所述数组中大于所述中位数的各个所述区间端点值构成作为右子树,逐级构建各层二叉树数据,直至所述目标数组集合中的各个数组均已构建为对应层级的二叉树数据,得到第一二叉树数据。
可选地,所述数据处理装置还包括:
关联存储单元,用于对于每个索引区间,为所述索引区间的两个区间端点值分别确定对应的端点类型,并将所述区间端点值、所述端点类型及所述索引区间对应的索引结果关联存储至多重映射容器中;
对应地,所述目标二叉树数据构建模块,用于对于各个所述待处理节点,根据所述待处理节点与所述待处理节点的父节点的连接关系及所述多重映射容器,确定所述待处理节点的索引结果及待连接位置;将所述待处理节点的索引结果作为叶子节点,并将所述叶子节点连接至所述待处理节点的所述待连接位置,得到目标二叉树数据。
可选地,所述数据处理装置还包括:
索引值获取单元,获取输入的索引值;
查找单元,用于根据所述索引值及所述目标二叉树数据,查找所述索引值对应的索引结果。
可选地,所述查找单元,具体用于根据所述索引值与所述目标二叉树数据的根节点的比较结果,确定目标子树;所述目标子树包括所述根节点对应的左子树或者右子树;根据所述索引值及所述目标子树,确定目标索引区间,并获取与所述目标索引区间的区间端点值相对应的所述叶子节点,得到所述索引值对应的索引结果;其中,所述目标索引区间为所述索引值所在的索引区间。
可选地,所述数据处理装置具体应用于四轮定位仪,所述索引区间为车辆的车轮的高度区间,所述索引结果为所述车轮对应的参数的标准值。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
实施例三:
图6是本申请一实施例提供的电子设备的示意图。如图6所示,该实施例的电子设备6包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62,例如数据处理程序。所述处理器60执行所述计算机程序62时实现上述各个数据处理方法实施例中的步骤,例如图1所示的步骤S101至S102。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各模块/单元的功能,例如图5所示原数据获取单元51至目标二叉树数据构建单元52的功能。
示例性的,所述计算机程序62可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述电子设备6中的执行过程。
所述电子设备6可以是四轮定位仪、车辆诊断设备、桌上型计算机、笔记本、掌上电脑及等计算设备。所述电子设备可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是电子设备6的示例,并不构成对电子设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61可以是所述电子设备6的内部存储单元,例如电子设备6的硬盘或内存。所述存储器61也可以是所述电子设备6的外部存储设备,例如所述电子设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述电子设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述电子设备所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/电子设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
获取原数据,所述原数据包括各个预设的索引区间以及与所述索引区间对应的索引结果;
根据各个所述索引区间的区间端点值及所述索引结果,构建得到目标二叉树数据;其中,所述目标二叉树数据为以所述区间端点值中的中位数为根节点的二叉树数据,并且,所述目标二叉树数据的左子树包括小于所述根节点的各个所述区间端点值,所述目标二叉树数据的右子树包括大于所述根节点的各个所述区间端点值,所述目标二叉树数据的各个叶子节点为各个所述索引区间分别对应的索引结果。
2.如权利要求1所述的数据处理方法,其特征在于,所述根据各个所述索引区间的区间端点值及所述索引结果,构建得到目标二叉树数据,包括:
根据各个所述索引区间的所述区间端点值,得到区间端点数组;所述区间端点数组包括按序排列的各个所述区间端点值;
按照二分法将所述区间端点数组划分为至少两个有序的子数组,并构建第一二叉树数据;其中,所述第一二叉树数据的每个节点与所述区间端点数组的各个区间端点值一一对应,且所述第一二叉树数据以所述区间端点数组中的中位数为根节点,以小于所述根节点的子数组作为左子树,以大于所述根节点的子数组作为右子树;
根据所述第一二叉树数据的根节点,为所述左子树中数值最大的节点增加右子节点,以及为所述右子树中数值最小的节点增加左子节点,得到第二二叉树数据;
确定所述第二二叉树数据中的待处理节点,并为各个所述待处理节点添加对应的索引结果作为叶子节点,得到目标二叉树数据;所述待处理节点为所述第二二叉树数据中至多存在一个子节点的节点。
3.如权利要求2所述的数据处理方法,其特征在于,所述按照二分法将所述区间端点数组划分为至少两个有序的子数组,并构建第一二叉树数据,包括:
以所述区间端点数组作为第一级数组,按照二分法逐级二分所述区间端点数组,得到由所述第一级数组及各个子数组逐级按序组成的目标数组集合;
对于各个所述目标数组集合中的各级数组,依次以所述数组的中位数作为根节点,以所述数组中小于所述中位数的区间端点值作为左子树,以所述数组中大于所述中位数的区间端点值作为右子树,逐级构建各层二叉树数据,直至所述目标数组集合中的各个数组均已构建为对应层级的二叉树数据,得到第一二叉树数据。
4.如权利要求2所述的数据处理方法,其特征在于,在所述获取原数据之后,还包括:
对于每个索引区间,为所述索引区间的两个区间端点值分别确定对应的端点类型,并将所述区间端点值、所述端点类型及所述索引区间对应的索引结果关联存储至多重映射容器中;
对应地,所述为各个所述待处理节点添加对应的索引结果作为叶子节点,得到目标二叉树数据,包括:
对于各个所述待处理节点,根据所述待处理节点与所述待处理节点的父节点的连接关系及所述多重映射容器,确定所述待处理节点的索引结果及待连接位置;
将所述待处理节点的索引结果作为叶子节点,并将所述叶子节点连接至所述待处理节点的所述待连接位置,得到目标二叉树数据。
5.如权利要求1所述的数据处理方法,其特征在于,在所述构建得到目标二叉树数据之后,还包括:
获取输入的索引值;
根据所述索引值及所述目标二叉树数据,查找所述索引值对应的索引结果。
6.如权利要求5所述的数据处理方法,其特征在于,所述根据所述索引值及所述目标二叉树数据,查找所述索引值对应的索引结果,包括:
根据所述索引值与所述目标二叉树数据的根节点的比较结果,确定目标子树;所述目标子树包括所述根节点对应的左子树或者右子树;
根据所述索引值及所述目标子树,确定目标索引区间,并获取与所述目标索引区间的区间端点值相对应的所述叶子节点,得到所述索引值对应的索引结果;其中,所述目标索引区间为所述索引值所在的索引区间。
7.如权利要求1至6任意一项所述的数据处理方法,其特征在于,所述数据处理方法应用于四轮定位仪,所述索引区间为车辆的车轮的高度区间,所述索引结果为所述车轮对应的参数的标准值。
8.一种数据处理装置,其特征在于,包括:
原数据获取单元,用于获取原数据,所述原数据包括各个预设的索引区间以及与所述索引区间对应的索引结果;
目标二叉树数据构建单元,用于根据各个所述索引区间的区间端点值及所述索引结果,构建得到目标二叉树数据;其中,所述目标二叉树数据为以所述区间端点值中的中位数为根节点的二叉树数据,并且,所述目标二叉树数据的左子树包括小于所述根节点的各个所述区间端点值,所述目标二叉树数据的右子树包括大于所述根节点的各个所述区间端点值,所述目标二叉树数据的各个叶子节点为各个所述索引区间分别对应的索引结果。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,当所述处理器执行所述计算机程序时,使得电子设备实现如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,当所述计算机程序被处理器执行时,使得电子设备实现如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110400643.5A CN113111227A (zh) | 2021-04-14 | 2021-04-14 | 数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110400643.5A CN113111227A (zh) | 2021-04-14 | 2021-04-14 | 数据处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113111227A true CN113111227A (zh) | 2021-07-13 |
Family
ID=76717533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110400643.5A Pending CN113111227A (zh) | 2021-04-14 | 2021-04-14 | 数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113111227A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114265701A (zh) * | 2022-03-01 | 2022-04-01 | 深圳思谋信息科技有限公司 | 资源处理方法、装置、计算机设备和存储介质 |
CN115017842A (zh) * | 2022-08-09 | 2022-09-06 | 北京星途探索科技有限公司 | 气动数据的插值方法及装置、电子设备、存储介质 |
WO2024051271A1 (zh) * | 2022-09-08 | 2024-03-14 | 华为技术有限公司 | 一种数据处理方法及装置 |
-
2021
- 2021-04-14 CN CN202110400643.5A patent/CN113111227A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114265701A (zh) * | 2022-03-01 | 2022-04-01 | 深圳思谋信息科技有限公司 | 资源处理方法、装置、计算机设备和存储介质 |
CN114265701B (zh) * | 2022-03-01 | 2022-06-28 | 深圳思谋信息科技有限公司 | 资源处理方法、装置、计算机设备和存储介质 |
CN115017842A (zh) * | 2022-08-09 | 2022-09-06 | 北京星途探索科技有限公司 | 气动数据的插值方法及装置、电子设备、存储介质 |
CN115017842B (zh) * | 2022-08-09 | 2022-12-02 | 北京星途探索科技有限公司 | 气动数据的插值方法及装置、电子设备、存储介质 |
WO2024051271A1 (zh) * | 2022-09-08 | 2024-03-14 | 华为技术有限公司 | 一种数据处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113111227A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
Harris et al. | Improved representation of sequence bloom trees | |
CN111104426B (zh) | 一种数据查询方法及系统 | |
CN107679208A (zh) | 一种图片的搜索方法、终端设备及存储介质 | |
CN107741972A (zh) | 一种图片的搜索方法、终端设备及存储介质 | |
CN109815240A (zh) | 用于管理索引的方法、装置、设备和存储介质 | |
EP3955256A1 (en) | Non-redundant gene clustering method and system, and electronic device | |
Jin et al. | prague: A practical framework for blending visual subgraph query formulation and query processing | |
CN116502273B (zh) | 基于数据血缘的动态数据脱敏方法、装置和设备 | |
CN110083731B (zh) | 图像检索方法、装置、计算机设备及存储介质 | |
CN113761185A (zh) | 主键提取方法、设备及存储介质 | |
US8312052B2 (en) | Process for transforming and consulting directed and attributed multigraphs based on the use of maps and bitmaps | |
CN111767406B (zh) | Plc工程的知识表示方法及装置 | |
WO2008005553A2 (en) | Alignment of product representations | |
CN116049180A (zh) | 面向Paas平台的租户数据处理方法及装置 | |
CN110619067A (zh) | 基于行业分类的检索方法、检索装置及可读存储介质 | |
CN112783971B (zh) | 交易记录方法、交易查询方法、电子设备及存储介质 | |
CN114328486A (zh) | 基于模型的数据质量核查方法及装置 | |
CN114745452A (zh) | 设备管理方法、装置及电子设备 | |
CN112445816B (zh) | 车辆诊断数据引用方法、装置、终端设备及存储介质 | |
CN114595215A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112949258A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111027824A (zh) | 一种风险评分的方法及装置 | |
CN109558521A (zh) | 大规模关键词多模匹配方法、装置以及设备 | |
CN109739839A (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 |