一种在多维数组中的数据查找方法

文档序号:7926953阅读:388来源:国知局
专利名称:一种在多维数组中的数据查找方法
技术领域
本发明应用于数据处理系统,具体说涉及在存储器系统中采用数组下标定位来实现的一种在多维数组的数据查找方法。
在目前数据处理系统中,电信领域中的智能网系统是一种典型的海量信息数据处理系统,该系统中的信息数据组成一种叫多维稀疏矩阵的多维数组,在业务处理过程中,经常需要查找各种多维稀疏矩阵数据,比如多个智能业务的多个地区主叫到多个其他地区被叫的的国内计费矩阵表,还有国际计费矩阵表等,在多维稀疏矩阵中,矩阵的下标范围很大,每个下标一般达到一千、一万、十万或百万,但实际存在有效使用的下标值只要几十、几百或上千个等,因为这些多维稀疏矩阵数据占用的空间非常巨大,一般保存在上述海量存储介质上的数据库中。
现有技术要实现对多维稀疏矩阵数据的查找,经常使用数据库查询语句直接针对多维稀疏矩阵数据进行查询,这种方法必须通过对数据库表的访问才能得到计费数据,但由于多维稀疏矩阵数据具有占用存储空间大,海量存储介质访问速度慢等不利因素,所以导致查找效率低、速度慢。

发明内容
针对上述情形,本发明提出了一种在存储系统中采用数组下标定位来实现的在多维数组中的数据查找方法,其将有效的多维数组中的数据及其数组下标保存在存储单元中,通过数组下标定位的方式实现对多维数组的高效查找。
为实现上述目的,本发明提供一种在存储系统中采用数组下标定位来实现的在多维数组中的数据查找方法,该方法包含下列步骤a、根据所述多维数组中数据的维数,依次对每一维矩阵数据分别建立长度和该维矩阵下标有效值的实际使用最大值相匹配的第一存储单元系列,并初始化;b、根据所述多维数组中数据的维数,依次对每一维矩阵数据分别建立长度和该维矩阵下标最大值与最小值的差值相匹配的第二存储单元系列,并初始化;c、根据所述各维矩阵数据下标有效值的实际使用最大值建立相匹配长度的多维第三存储单元阵列;d、将所述多维数组中的每个有效数据的维度下标值,依次分别与和各维相应的第二存储单元系列中的存储单元的下标值一一对应,而所述的第二存储单元系列中的存储单元的值与和各维相应的所述的第一存储单元系列的存储单元的下标值一一对应,并将该第一存储单元系列的存储单元赋值;e、将所述多维数组中的每个有效数据赋值给所述的第三存储单元阵列中的存储单元,其中所述的第三存储单元阵列的维度下标值和该有效数据维度下标值相应的所述的第二存储单元系列中存储单元的值一一对应。
f、根据所述多维数组中的待查找的有效数据的维度下标值查找出各维的第二存储单元系列中存储单元的值,如果该存储单元的值有一个为初始化值,则查找失败;否则第三存储单元阵列中下标值为第二存储单元系列中存储单元值的存储单元值即为要查找的数据。
更具体地讲,上述步骤a中的相匹配可以是指所述长度等于该维矩阵下标有效值的实际使用最大值;步骤b中的相匹配可以是指所述长度等于该维矩阵下标最大值与最小值的差值再加1;步骤c中的相匹配可以是指所述长度等于所述各维矩阵数据下标有效值的实际使用最大值。
而步骤d中的依次分别与和各维相应的第二存储单元系列中的存储单元的下标值一一对应更具体地讲指和各维相应的第二存储单元系列中的存储单元的下标值等于所述有效数据的该维度下标值与该维矩阵下标最小值的差值再加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的存储单元的值即为要查找的数据。
权利要求
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。
全文摘要
一种在多维数组中的数据查找方法,该方法包含下列步骤建立第一存储单元系列,并初始化;建立第二存储单元系列,并初始化;建立多维第三存储单元阵列;对第一存储单元系列、第二存储单元系列的各存储单元赋值;将所述多维稀疏矩阵中的每个有效数据对第三存储单元阵列的各存储单元赋值;根据待查找的有效数据的维度下标值查找出第三内存储器阵列中存储单元值。采用本发明所述的技术方案,所述的多维数组只需保存各项具体的数据值,作为多维数组的下标则被转换为各存储单元的下标,然后根据下标定位就可以查找出多维数组的数据,整个查找方法简单方便,查找效率高,从而提高了整个查询系统整体性能。
文档编号H04L12/14GK1469584SQ0214048
公开日2004年1月21日 申请日期2002年7月18日 优先权日2002年7月18日
发明者郑育红 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1