什么叫“正比” ?

yutaooo 2009-02-03 09:12:52




算法导论 2 中文版

Page136

这一结论说明了什么呢?如果散列表中槽数至少与表中的元素数成正比.......因而,全部的字典操作平均情况下都可以在O(1)时间内完成。



这里的正比是说装载因子(load factor)小于1吗?

a < 1 ?



算法导论 2 中文版

Page135

给定一个能存放n个元素的、具有m个槽位的散列表T,定义T的装载因子(load factor)a为n/m,.......



这两段翻译真太perfect。我直接短路了。
...全文
185 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
arong1234 2009-02-04
  • 打赏
  • 举报
回复
当我们说O(1), O(n)或者O(nlgn)时,这个n是需要处理的数据数目
对于hash table, 你可以假定k=n/m是不随做大变化的常量,或者说存在常量K,任何n/m都小于K
这样,对于n而言,时间复杂度实际是不大于次查找,因此对于n而言,这个时间复杂度是不变的,所以是O(1)

注意,K应该是相对不变的,O(log(n/m)因此就是O(1), O(1)和O(10)是一样的哦

[Quote=引用 8 楼 yutaooo 的回复:]

阿荣你这里写的 k,跟我写的 a 是一个意思。都是装载因子。

假设链表的操作很好,最佳也应该是 O(logK) 呀?

难道不应该是O(log(n/m))。为什么是O(1)呢。

随着外界的输入量的增加,的确是不应该说是O(1)呀。我是这里不明白。
[/Quote]
yutaooo 2009-02-04
  • 打赏
  • 举报
回复

阿荣你这里写的 k,跟我写的 a 是一个意思。都是装载因子。

假设链表的操作很好,最佳也应该是 O(logK) 呀?

难道不应该是O(log(n/m))。为什么是O(1)呢。

随着外界的输入量的增加,的确是不应该说是O(1)呀。我是这里不明白。
yutaooo 2009-02-04
  • 打赏
  • 举报
回复

3 楼是我写反了。我想说的是, n = 49, m = 7,那么链表的平均长度为 7。
arong1234 2009-02-04
  • 打赏
  • 举报
回复
注意O(1)是根据a=n/m算的,不是根据m算的。而你的3楼算法实际上是根据m去算了
arong1234 2009-02-04
  • 打赏
  • 举报
回复
哦我理解了,实际上m越大,直接访问到的机会越多,当m>>n时,实际上你可以认为一次就可以查找到。

至少成正比意味着m >= kn

对于hash table这种特殊的数据结构而言,m确实不可能远远大于n,那么如果k大于1,对于hash table来说就太不现实了,因此一般情况下k应该是小于1的

你举的例子不是很好啦,因为n=49太少了,假如n=10000000000而m=n/7的话,每个链表也就7个元素,在10000000000中查找7次,就可以说是O(1)

[Quote=引用 3 楼 yutaooo 的回复:]

我是觉得 k > 1 后,O(1)不成立了。所以才问的。

比如说,m = 7, n = 49,那最佳情况下,链表内也要 7 个元素。怎么会是 O(1) 呢?
[/Quote]
arong1234 2009-02-04
  • 打赏
  • 举报
回复
我想对于hash table,他的时间复杂度不是和元素个数成“正比”这种关系的。你中间...省略了些东西,不能说明前面的就是证明O(1)的前提。

我不知道你看的书上的那个“槽数”是什么东东,对于hash table,人家访问时是根据一个索引直接访问到元素的,一个100万元素的hash table,根据hash key,可以直接定位到要找的元素,当然是O(1)
[Quote=引用 3 楼 yutaooo 的回复:]

我是觉得 k > 1 后,O(1)不成立了。所以才问的。

比如说,m = 7, n = 49,那最佳情况下,链表内也要 7 个元素。怎么会是 O(1) 呢?
[/Quote]
yutaooo 2009-02-03
  • 打赏
  • 举报
回复

我是觉得 k > 1 后,O(1)不成立了。所以才问的。

比如说,m = 7, n = 49,那最佳情况下,链表内也要 7 个元素。怎么会是 O(1) 呢?
arong1234 2009-02-03
  • 打赏
  • 举报
回复
不是小于1,而是说他至少是常数,不是指数级增长的
arong1234 2009-02-03
  • 打赏
  • 举报
回复
x,y成正比,意味着存在正常数k,满足y=kx

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧