CN1469584A - 一种在多维数组中的数据查找方法 - Google Patents
一种在多维数组中的数据查找方法 Download PDFInfo
- Publication number
- CN1469584A CN1469584A CNA021404844A CN02140484A CN1469584A CN 1469584 A CN1469584 A CN 1469584A CN A021404844 A CNA021404844 A CN A021404844A CN 02140484 A CN02140484 A CN 02140484A CN 1469584 A CN1469584 A CN 1469584A
- Authority
- CN
- China
- Prior art keywords
- memory cell
- value
- subscript
- dimension
- 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.)
- Granted
Links
Landscapes
- Complex Calculations (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种在多维数组中的数据查找方法,该方法包含下列步骤:建立第一存储单元系列,并初始化;建立第二存储单元系列,并初始化;建立多维第三存储单元阵列;对第一存储单元系列、第二存储单元系列的各存储单元赋值;将所述多维稀疏矩阵中的每个有效数据对第三存储单元阵列的各存储单元赋值;根据待查找的有效数据的维度下标值查找出第三内存储器阵列中存储单元值。采用本发明所述的技术方案,所述的多维数组只需保存各项具体的数据值,作为多维数组的下标则被转换为各存储单元的下标,然后根据下标定位就可以查找出多维数组的数据,整个查找方法简单方便,查找效率高,从而提高了整个查询系统整体性能。
Description
技术领域
本发明应用于数据处理系统,具体说涉及在存储器系统中采用数组下标定位来实现的一种在多维数组的数据查找方法。
背景技术
目前数据处理系统通常采用分层次的存储器结构,一个数据处理系统所访问的大部分数据均存储在诸如光盘、磁带、磁盘或其他能存储大量数字信息的海量存储介质上,可是这些介质访问的速度非常慢,无法实现CPU(Central Process Unit:中央处理器)对所存数据的直接高速访问,进而大大影响了整个数据处理系统的速度。
在目前数据处理系统中,电信领域中的智能网系统是一种典型的海量信息数据处理系统,该系统中的信息数据组成一种叫多维稀疏矩阵的多维数组,在业务处理过程中,经常需要查找各种多维稀疏矩阵数据,比如多个智能业务的多个地区主叫到多个其他地区被叫的的国内计费矩阵表,还有国际计费矩阵表等,在多维稀疏矩阵中,矩阵的下标范围很大,每个下标一般达到一千、一万、十万或百万,但实际存在有效使用的下标值只要几十、几百或上千个等,因为这些多维稀疏矩阵数据占用的空间非常巨大,一般保存在上述海量存储介质上的数据库中。
现有技术要实现对多维稀疏矩阵数据的查找,经常使用数据库查询语句直接针对多维稀疏矩阵数据进行查询,这种方法必须通过对数据库表的访问才能得到计费数据,但由于多维稀疏矩阵数据具有占用存储空间大,海量存储介质访问速度慢等不利因素,所以导致查找效率低、速度慢。
发明内容
针对上述情形,本发明提出了一种在存储系统中采用数组下标定位来实现的在多维数组中的数据查找方法,其将有效的多维数组中的数据及其数组下标保存在存储单元中,通过数组下标定位的方式实现对多维数组的高效查找。
为实现上述目的,本发明提供一种在存储系统中采用数组下标定位来实现的在多维数组中的数据查找方法,该方法包含下列步骤:
a、根据所述多维数组中数据的维数,依次对每一维矩阵数据分别建立长度和该维矩阵下标有效值的实际使用最大值相匹配的第一存储单元系列,并初始化;
b、根据所述多维数组中数据的维数,依次对每一维矩阵数据分别建立长度和该维矩阵下标最大值与最小值的差值相匹配的第二存储单元系列,并初始化;
c、根据所述各维矩阵数据下标有效值的实际使用最大值建立相匹配长度的多维第三存储单元阵列;
d、将所述多维数组中的每个有效数据的维度下标值,依次分别与和各维相应的第二存储单元系列中的存储单元的下标值一一对应,而所述的第二存储单元系列中的存储单元的值与和各维相应的所述的第一存储单元系列的存储单元的下标值一一对应,并将该第一存储单元系列的存储单元赋值;
e、将所述多维数组中的每个有效数据赋值给所述的第三存储单元阵列中的存储单元,其中所述的第三存储单元阵列的维度下标值和该有效数据维度下标值相应的所述的第二存储单元系列中存储单元的值一一对应。
f、根据所述多维数组中的待查找的有效数据的维度下标值查找出各维的第二存储单元系列中存储单元的值,如果该存储单元的值有一个为初始化值,则查找失败;否则第三存储单元阵列中下标值为第二存储单元系列中存储单元值的存储单元值即为要查找的数据。
更具体地讲,上述步骤a中的相匹配可以是指所述长度等于该维矩阵下标有效值的实际使用最大值;步骤b中的相匹配可以是指所述长度等于该维矩阵下标最大值与最小值的差值再加1;步骤c中的相匹配可以是指所述长度等于所述各维矩阵数据下标有效值的实际使用最大值。
而步骤d中的依次分别与和各维相应的第二存储单元系列中的存储单元的下标值一一对应更具体地讲指:和各维相应的第二存储单元系列中的存储单元的下标值等于所述有效数据的该维度下标值与该维矩阵下标最小值的差值再加1;所述的第二存储单元系列中的存储单元的值与和各维相应的所述的第一存储单元系列的存储单元的下标值一一对应更具体地是指相等。
采用本发明所述的技术方案,所述的多维数组只需保存各项具体的数据值,作为多维数组的下标则被转换为各存储单元的下标,对多维数组下标跟各存储单元的下标对应关系的查找简单容易,通过对一个一维数组的一个成员的查找就可知该下标值跟各存储单元数组下标值的对应关系,然后根据下标定位就可以查找出多维数组中的数据,整个查找方法简单方便,查找效率高,从而提高了整个查询系统整体性能。
附图说明
图1是本发明的在多维数组中的数据查找方法的流程图。
具体实现方式
电信领域中的智能网系统是一种典型的海量信息数据处理系统,下面以其中的国内计费矩阵表为具体实施例并结合图1,来详细描述本发明的实现过程。
该矩阵为一多维数组,更具体地讲是一种三维的稀疏计费矩阵(稀疏矩阵是指实际数据比矩阵大小小很多的多维数组),在该矩阵中,智能业务的下标为0-99999,其代表着不同的电信业务,如:200业务、17909业务等,业务值最大为5位长整数;主叫区号的下标为10000,主叫区号最长为4位,如:0756、08961等(注:首位0不计算在国内区号内)等;被叫区号的下标为10000,被叫区号最长为4位,如:0755、08962等(注:首位0不计算在国内区号内);由上述下标的数字长度可知,该计费矩阵中每个业务的矩阵数据空间为10000×10000,全部智能业务的矩阵数据空间将到达100000×10000×10000,而实际系统中支持的智能业务不会超过50个,区号不超过1000个。
现以200智能业务主叫号码为07568880808到被叫号码07556540808的国内计费矩阵表为例说明本发明在多维数组中的数据查找方法的实现过程。对主叫号码和被叫号码进行国内区号分析,得到国内主叫区号为0756,国内被叫区号为0755,即主叫区号的下标值可设为756,被叫区号的下标可设为755;200智能业务的下标值可设为200。
如图1所示,具体步骤如下:
一、根据所述多维数组数据的维数,依次对每一维矩阵数据分别建立长度和该维矩阵下标有效值的实际使用最大值相匹配的第一存储单元系列,并初始化;
确定三维稀疏计费矩阵的维数为3维,每一维下标有效值实际使用最大值分别为50、1000、1000,对每个矩阵维度建立长度为50、1000、1000的第一存储单元系列,分别记为A(1)、A(2)、A(3),并将其初始化,其值均设为-1。
二、根据所述多维数组数据的维数,依次对每一维矩阵数据分别建立长度和该维矩阵下标最大值与最小值的差值相匹配的第二存储单元系列,并初始化;
确定三维稀疏计费矩阵的维数为3维,每一维下标的最小值分别为0、0、0,每一维下标的最大值分别为99999、9999、9999,对每个矩阵维度建立长度为100000、10000、10000的第二存储单元系列,分别记为B(1)、B(2)、B(3),并将其初始化,其值均设为-1。
三、根据所述各维矩阵数据下标有效值的实际使用最大值建立相匹配长度的多维第三存储单元阵列;即建立50×1000×1000的多维第三存储单元阵列;
四、将所述多维数组中的每个有效数据的维度下标值,依次分别与和各维相应的第二存储单元系列中的存储单元的下标值一一对应,而所述的第二存储单元系列中的存储单元的值与和各维相应的所述的第一存储单元系列的存储单元的下标值一一对应,并将所述的第一存储单元系列的存储单元赋值;
例如,根据三维稀疏计费矩阵的某个有效数据的维度下标值,即200、756、755,定位和各维相应的第二存储单元系列B(1)、B(2)、B(3)中下标值为200、756、755存储单元,同时在和各维相应的所述的第一存储单元系列A(1)、A(2)、A(3)中查找一个值为-1的存储单元,将第一存储单元系列A(1)、A(2)、A(3)的存储单元值赋为1,并将该存储单元的下标值,例如为1、10、20,赋值给与其相应的第二存储单元系列B(1)、B(2)、B(3)中下标值为200、756、755存储单元。
五、将所述多维数组中的每个有效数据赋值给所述的第三存储单元阵列中的存储单元,其中所述的第三存储单元阵列的维度下标值和该有效数据维度下标值相应的所述的第二存储单元系列中存储单元的值一一对应。
例如,有效数据的维度下标值为200、756、755,而与其相应的第二存储单元系列B(1)、B(2)、B(3)中存储单元的值为1、10、20,因此,可将三维稀疏计费矩阵的该有效数据赋值给所述的第三存储单元阵列中下标值为1、10、20的存储单元。
六、根据所述多维数组中的待查找的有效数据的维度下标值查找出各维的第二存储单元系列中存储单元的值,如果该存储单元的值有一个为初始化值,则查找失败;否则第三存储单元阵列中下标值为第二存储单元系列中存储单元值的存储单元值即为要查找的数据。
通过步骤一至步骤五建立好第三存储单元阵列后,假设上述的所有存储单元均为计算机的内存储器,当需要查找200智能业务主叫号码为07568880808到被叫号码07556540808的国内计费矩阵表中的有效数据时,首先根据该数据的维度下标值为200、756、755查找出各维的第二内存储器系列B(1)、B(2)、B(3)中存储单元的值1、10、20,如果该存储单元的值有一个为-1,则查找失败;否则第三内存储器阵列中下标值为1、10、20的存储单元的值即为要查找的数据。
Claims (9)
1、一种在多维数组中的数据查找方法,其特征在于,该方法包含下列步骤:
a、根据所述多维数组中数据的维数,依次对每一维矩阵数据分别建立长度和该维矩阵下标有效值的实际使用最大值相匹配的第一存储单元系列,并初始化;
b、根据所述多维数组中数据的维数,依次对每一维矩阵数据分别建立长度和该维矩阵下标最大值与最小值的差值相匹配的第二存储单元系列,并初始化;
c、根据所述各维矩阵数据下标有效值的实际使用最大值建立相匹配长度的多维第三存储单元阵列;
d、将所述多维数组中的每个有效数据的维度下标值,依次分别与和各维相应的第二存储单元系列中的存储单元的下标值一一对应,而所述的第二存储单元系列中的存储单元的值与和各维相应的所述的第一存储单元系列的存储单元的下标值一一对应,并将该第一存储单元系列的存储单元赋值;
e、将所述多维数组中的每个有效数据赋值给所述的第三存储单元阵列中的存储单元,其中所述的第三存储单元阵列的维度下标值和该有效数据维度下标值相应的所述的第二存储单元系列中存储单元的值一一对应;
f、根据所述多维数组中的待查找的有效数据的维度下标值查找出各维的第二存储单元系列中存储单元的值,如果该存储单元的值有一个为初始化值,则查找失败,否则第三存储单元阵列中下标值为第二存储单元系列中存储单元值的存储单元值即为要查找的数据。
2、如权利要求1所述的一种在多维数组中的数据查找方法,其特征在于,所述步骤a中的相匹配是指所述长度等于该维矩阵下标有效值的实际使用最大值。
3、如权利要求1所述的一种在多维数组中的数据查找方法,其特征在于,所述步骤b中的相匹配是指所述长度等于该维矩阵下标最大值与最小值的差值再加1。
4、如权利要求1所述的一种在多维数组中的数据查找方法,其特征在于,所述步骤c中的相匹配是指所述长度等于所述各维矩阵数据下标有效值的实际使用最大值。
5、如权利要求1所述的一种在多维数组中的数据查找方法,其特征在于,所述步骤d中的依次分别与和各维相应的第二存储单元系列中的存储单元的下标值一一对应更具体地讲指:和各维相应的第二存储单元系列中的存储单元的下标值等于所述有效数据的该维度下标值与该维矩阵下标最小值的差值再加1。
6、如权利要求1所述的一种在多维数组中的数据查找方法,其特征在于,所述步骤d中的所述的第二存储单元系列中的存储单元的值与和各维相应的该第一存储单元系列的存储单元的下标值一一对应更具体地是指相等。
7、如权利要求1所述的一种在多维数组中的数据查找方法,其特征在于,所述步骤e中的一一对应更具体地是指相等。
8、如权利要求1所述的一种在多维数组中的数据查找方法,其特征在于,所述多维数组是国内计费矩阵表或者国际计费矩阵表。
9、如权利要求1所述的一种在多维数组中的数据查找方法,其特征在于,所述初始化是指赋值为-1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02140484 CN1286291C (zh) | 2002-07-18 | 2002-07-18 | 一种在多维数组中的数据查找方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02140484 CN1286291C (zh) | 2002-07-18 | 2002-07-18 | 一种在多维数组中的数据查找方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1469584A true CN1469584A (zh) | 2004-01-21 |
CN1286291C CN1286291C (zh) | 2006-11-22 |
Family
ID=34147592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 02140484 Expired - Fee Related CN1286291C (zh) | 2002-07-18 | 2002-07-18 | 一种在多维数组中的数据查找方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1286291C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193977A (zh) * | 2017-05-26 | 2017-09-22 | 刘伟 | 数据查找方法、人工智能系统、图像处理系统、数据库、搜索引擎、通讯系统、计算机应用 |
-
2002
- 2002-07-18 CN CN 02140484 patent/CN1286291C/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193977A (zh) * | 2017-05-26 | 2017-09-22 | 刘伟 | 数据查找方法、人工智能系统、图像处理系统、数据库、搜索引擎、通讯系统、计算机应用 |
Also Published As
Publication number | Publication date |
---|---|
CN1286291C (zh) | 2006-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6678687B2 (en) | Method for creating an index and method for searching an index | |
US7590652B2 (en) | Systems and methods of reverse lookup | |
US7921086B1 (en) | Deterministic space management in deduplication applications | |
Weber et al. | An approximation based data structure for similarity search | |
CN1152365A (zh) | 一种存储和检索数据的方法和一种存储器配置 | |
CN1838124A (zh) | 海量数据内存数据库中快速定位的网格+t树索引的方法 | |
EP0772139A2 (en) | Method and apparatus for segmenting a database | |
CN101039278A (zh) | 数据管理方法及系统 | |
CN102375852A (zh) | 建立数据索引的方法、利用该索引查询数据的方法和系统 | |
CN1828556A (zh) | 一种数据存储的方法、系统及设备 | |
Cha et al. | The GC-tree: a high-dimensional index structure for similarity search in image databases | |
WO2021016050A1 (en) | Multi-record index structure for key-value stores | |
CN1635494A (zh) | 实现类内存数据库存取和检索的方法 | |
CN1255748C (zh) | 一种存储虚拟化系统的元数据层次管理方法及其系统 | |
JP2001142752A (ja) | データベース管理方法 | |
CN1286291C (zh) | 一种在多维数组中的数据查找方法 | |
CN1791873A (zh) | 还原数据库系统中的对象和从属对象 | |
US20030112742A1 (en) | System and method for multiple-threaded access to a database | |
CN1287316C (zh) | 在索引高键码生成期间压缩变长列的方法和系统 | |
JP2001344553A (ja) | 特徴ベクトルのデータ空間のインデクシング方法 | |
Wu et al. | Associative searching in multiple storage units | |
Lin | Concurrent frame signature files | |
Otoo et al. | Multidimensional Sparse Array Storage for Data Analytics | |
CN117193674B (zh) | 一种提升物联网设备海量数据存取效能的方法及装置 | |
CN117312239A (zh) | 一种基于组合方式存储数据索引的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20061122 Termination date: 20200718 |