算法打基础——HashⅡ 全域哈希与完美哈希.docVIP

  • 71
  • 0
  • 约5.13千字
  • 约 9页
  • 2016-12-07 发布于贵州
  • 举报

 算法打基础——HashⅡ 全域哈希与完美哈希.doc

 算法打基础——HashⅡ 全域哈希与完美哈希

这一节涉及数学超级多,各种数论知识,各种不明觉厉! 看了几遍,才勉强看懂一些,所以这 篇稍微简单的介绍着两种hash table, 免得瞎说说错了。 这一讲的主要知识点是:1. 全域哈希及构造 ? ?2. 完美哈希? ? 1. 全域哈希及构造 介绍全域哈希之前,要先讨论一下普通哈希的一个缺点。 举个charles举得那个例子:如果你 和一个竞争对手同时为一家公司做compiler的symbol table, 公司要求你们代码共享 (o(□╰)o),你们做好后公司评判的标准就是 你俩互相提供一些测试样例,谁的效率高就买谁的。 然后,普通哈希的缺点就出来了:对任意的hash函数h,总存在一组keys,使得 , 对某个槽i。即我总可以找到一组键值,让他们都映射到同一个槽里面,这样效率 就跟离链表差不多了 解决的思想就是:独立于键值,随机的选择hash 函数。这就跟快排中为避免最差情况时随机化 版本差不多。但是选取hash function的全局域是不能乱定的,否则也打不到理想的性能。 ? 下面就给出全域哈希的定义: ? 设U是key的全局域, 设H 是哈希函数的有限集合,每一个都是将U映射到 {0,1,..,m-1},即table的槽内。 如果对所有不等的x,yU ,有 换句话说,就是对于任意的不相等key的x和y, 从哈希函数集中选择一个哈希函数,这两个key 发生冲突的概率是1/m

文档评论(0)

1亿VIP精品文档

相关文档