哈希表的应用

哈希表的应用

                       

Jeffrey  
Signal & Information Proccessing   of GUET
My Email: zhuch1984@163.com  
Time for this paper:20061215
 

   哈希表又叫做散列表,是一种高效的数据结构,其高效主要体现在把数据的存储和查找时间大大降低,几乎可以看成是常数时间,而代价是消耗比较多的内存,然而在硬件技术越来越发达的今天,用空间换时间的做法在某种意义上是值得的。另外,编码比较容易也是它的特点之一。

               

什么时候适合应用哈希表呢?综合国内外实际应用情况,可以概括为:高效的数据存储和查找均可以用哈希表。

下面就目前有关哈希表流行的应用做一些初步的探讨。


1、对等网络(P2P)中的应用

a) 基于分布式哈希表的系统

对于对等计算系统而言,能够适应的网络规模是一项非常重要的指标。然而,早期设计的系统,比如 Gnutella Napster,在这方面都有一定的缺陷。前者使用的是不适合大规模系统的洪泛策略,后者引入了集中式的目录管理。

在这样的背景下,一批基于分布式哈希表的系统应时而生,包括 Tapestry[52]Pastry[40]Chord[47]Content-Addressable Networks (CAN)[39]。在这些系统中,文件根据系统生成的标识(ID)排列。这种标识通常是文件名经过哈希计算的结果。系统中的每一个结点都和一个特定区段内的标识关联,并保存相关联标识对应的文件的信息。当分布式哈希表系统对标识进行查询时,相应的结点便会返回对应的信息。

分布式哈希表系统的核心是路由协议。系统中的分布式哈希表结点构成一个覆盖网,每一个查询操作都是通过这个覆盖网找到目标结点。所以,分布式哈希表系统的性能就取决于其所采用的路由协议的效率。虽然各种分布式哈希表系统的路由协议都不相同,但它们都具有一个共同的特点,就是每一个结点在覆盖网中拥有的邻居数目为 O( LogN ) 1 ,完成每一次路由所需步数都会在O( LogN ) 内,其中 N 为系统总结点数。

b)基于分布式哈希表的关键词搜索

结构化对等计算网络都实现了分布式哈希表,并利用分布式哈希表将数据项映射到结点。上层应用可以插入一对<key, value>到系统中,并通过 key 得到 value,哈希表在EJB中用的较多,简单的聊天室中可以靠Hash表来维持用户的数据。


2、用哈希函数压缩序数索引

在数学上将这种n位数转换为m(其中m<n)位数称为哈希转换(hashing)。哈希转换可以将一个索引器空间(indexers space)转换为哈希表(hash table)。哈希函数实现哈希转换。以社保号的例子来说,哈希函数H()表示为:H(x) = x 的后四位,哈希函数的输入可以是任意的九位社保号,而结果则是社保号的后四位数字。

数学术语中,这种将九位数转换为四位数的方法称为哈希元素映射,显然映射未必全是单设,这必将导致冲突的产生 ,处理冲突的相关机制不是本文探讨范围。


3、信息安全方面的应用

a)攻击路径重构

在路由器上利用哈希表记录IP报文头部信息,实现攻击路径的重构,从而追踪到攻击主机的地址。

出现的问题:1、瞬时攻击和追踪中,该方法不是适合源主机和目标主机之间跳数太多的网络。2、更新路由器或增大内存导致硬件成本提高

b)在信息加密方面的应用

利用哈希函数的非单射构造不可逆的加密算法,从而实现信息的安全传输。


4、数据库中的数据查找

由于它在记录查找时一次存取便能得到所查记录,所以在电信领域中对大型话单文件进行处理时,显示相当高的效率。例如:广东电信公用电话200话单处理中利用哈希表实现了话单统计。

由以上总结可知,哈希表的应用非常广泛。


                                                                                                     

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值