【问题标题】:Hashing analysis in hashtable哈希表中的哈希分析
【发布时间】:2014-06-26 05:51:18
【问题描述】:

哈希值的搜索时间为 O(1+alpha) ,其中

 alpha = number of elements/size of table

不明白为什么要加1?

检查的预期数量元素是

(1/n  summation of i=1 to n (1+(i-1/m)))

这个我也不懂,怎么推导出来的?

(我知道如何解决上面的表达式,但我想了解它是如何导致这个表达式的..)

编辑:n 是存在的元素数,m 是槽数或表的大小

【问题讨论】:

  • 请指定在哪个操作期间“检查元素”?在一次查找期间?你的表情中mn 是什么? n 可能是元素的总数,但 m ?
  • @armel 谢谢..我已经编辑了这个问题,是的,在一次搜索操作中是的,n 是表格中的元素数

标签: data-structures hash hashtable


【解决方案1】:

不明白为什么要加1?

O(1) 表明即使存储桶或哈希表中根本没有元素,您也必须计算键哈希值,因此它不会是瞬时的。

您的第二部分需要精确。看我的cmets。

编辑: 您的第二部分用于“摊销分析”,其想法是实际上在最初为空的哈希表中的一组 n 插入中考虑每个插入,每次查找都需要 O(1) 散列加上 O(i-1/m ) 搜索桶内容,考虑到每个桶相对于先前的元素是均匀填充的。总和的分辨率实际上给出了 O(1+alpha) 的摊销时间。

【讨论】:

  • 所以这意味着搜索该特定元素,其关键哈希值是在恒定时间 O(1) 内计算出来的。我正确吗?
  • O(1) 这里的意思是它与元素的数量和哈希表的大小无关。这当然取决于关键的复杂性。计算一个整数的哈希键可能很简单并且是常数时间,所以 O(1),而对于字符串可能是 O(string size) 等等。
  • 好的,谢谢..关于第二部分的信息是相关的吗?我还需要其他什么吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 2012-09-16
  • 2013-03-21
  • 2021-02-13
  • 2023-03-27
  • 2019-03-26
  • 2011-05-27
相关资源
最近更新 更多