[发明专利]二维表hash排序方法无效
申请号: | 201110254893.9 | 申请日: | 2011-08-31 |
公开(公告)号: | CN102306187A | 公开(公告)日: | 2012-01-04 |
发明(设计)人: | 蒋云良;范婧;刘勇 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 浙江杭州金通专利事务所有限公司 33100 | 代理人: | 刘晓春 |
地址: | 310027 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 二维 hash 排序 方法 | ||
技术领域
本发明涉及一种二维表排序的方法,尤其涉及一种二维离散属性表的hash排序方法。
背景技术
二维表是信息的主要表达形式之一,用于信息处理的数据集表示为一张由多个属性特征进行描述的二维表,每一维属性上取值为离散的数值或字符(对于连续型数据可以先进行离散化预处理为离散型数据),二维表中的一行为一条记录,对这类二维表进行排序是指对数据集的多个属性字段按照一定的优先级别进行排序操作,如升序、降序排列等。在计算机的许多领域中常常需要二维表排序操作,例如,在典型商业数据处理中数据项是记录,并且记录按照关键字进行排序,排序大大简化了查找或更新一个记录的过程,对于分类问题,对样本进行二维排序也是一项非常有益和必要的预处理过程。二维表排序是许多数据处理算法的重要步骤,先对记录集在指定的属性集上排序,再求此属性集对论域划分生成的等价类,能降低计算上下近似集、属性约简、核的复杂度。
现有的典型的二维表排序方法是二维表快速排序法,但是此方法依赖于数据的分布情况,当大部分数据呈倒序排列时,性能下降很快,而且不具有稳定性。另一方面,随着信息技术的飞速发展,数据爆炸性增长,处理大数据集越来越普遍,此方法在数据规模非常大时性能不够理想。探寻高效的适应大数据集的二维表排序方法是非常有必要的。
发明内容
本发明所要解决的技术问题是提供一种二维表hash排序方法,它是一种高效的二维表排序方法,且此方法不会改变二维表中属性值完全相同的记录的相对顺序,即此二维表排序方法具有稳定性。为此,本发明采用以下技术方案:
二维表hash排序方法,包括以下步骤:
(1)、二维表初始化为链表而建立初始划分块;
(2)、在当前属性上将划分块中的元素hash到hash-cube中;
(3)、遍历hash-cube重构划分块;
(4)、检查是否所有元素个数大于1的划分块均被重构和在所有属性上是否完成元素个数大于1的划分块被重构操作,若是则终止,若否则在下一划分块或者下一属性上进行步骤(2)、(3)、(4)。
在采用上述技术方案的基础上,本发明还可采用以下进一步的技术方案:
在步骤(1)中,将二维表记录存放在链表中,链表节点包括:二维表中记录的初始地址;指向下一个划分块的指针;指向同一划分块中下一个元素的指针。
在步骤(2)中,使用的hash方法步骤为:查找在当前属性上划分块中的最小和最大元素amin,amax;计算hash-cube的平面矩阵的维度d,即行和列的大小,计算划分块中每一个数据元素在hash-cube中的位置,构建划分块的hash-cube。
在hash-cube中,使用i、j、k分别表示hash-cube的行、列、层坐标,d为hash-cube的平面矩阵维度,x为划分块中待排序的数据元素,amin、amax分别为在当前属性上划分块中的最小、最大元素,数据元素为记录在当前属性上的属性值,[]表示向上取整。
计算每一个数据元素在hash-cube中的位置包括以下步骤:根据公式i=[(x-amin)/d]计算元素x在hash-cube中的行坐标值;根据公式j=(x-amin)%d计算元素x在hash-cube中的列坐标值;每一实数对(i,j)对应一个计数器kij,初始值为0,若(i,j)已经出现过,则kij=kij+1,kij为层坐标值。kij实质上标识了hash-cube中的平面矩阵层次,每一层平面矩阵除了层次标识不同,行数和列数都是相同的,平面矩阵中的行数据元素按照由左至右的顺序增大,列数据元素按照由上至下的顺序增大,且任一数据元素大于所有列坐标比它小的数据元素。每一层矩阵平面中的一个方格只存放一个数据元素,且所有方格中的数据元素不重复,划分块中所有不重复的元素都能在一个这样的矩阵平面中找到相应的位置。Hash-cube中以第0层矩阵平面为基准,划分块中的所有不重复元素都映射到此矩阵平面上,而重复的元素依次映射到下一层矩阵平面上。
在步骤(3)中重构划分块包括:按照层、行、列的顺序遍历hash-cube;坐标i和坐标j相同,只有坐标k不同的元素属于同一划分块;划分块之间的顺序由坐标i和坐标j标识;i、j、k分别表示hash-cube的行、列、层坐标。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110254893.9/2.html,转载请声明来源钻瓜专利网。