9.19做题资料:哈希表查找时间复杂度分析

[复制链接]
发表于 2025-9-19 21:02:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
好的,我用一个简单的比喻来表明,就像你在学校里找座位一样!
1. 哈希表是什么?

想象一个讲堂里有许多多少桌子(这些桌子就是哈希表)。每张桌子都有一个编号(好比1号桌、2号桌、3号桌……)。老师规定:每个同砚必须坐在指定编号的桌子上。
2. 键值对是什么?

如今,每个同砚都有一个学号(这就是“键”),而且每个同砚都带着自己的书包(这就是“值”)。
以是,“键值对” 就是:学号(键) + 书包(值)。
哈希表就是用来存放这些“键值对”的——也就是让每个同砚(键)坐在自己的桌子(值)上。
3. 哈希函数是什么?

老师规定了一个规则:你的学号除以讲堂的总桌数,余数是几,你就坐在几号桌。
好比:

  • 讲堂有10张桌子(编号0到9)。
  • 你的学号是15,那么 15 ÷ 10 = 1 余 5,以是你就坐在5号桌。
    这个规则就是哈希函数——它告诉你应该坐在那边。
4. 辩论是什么?

偶然候,两个同砚的学号算出来会坐在同一张桌子上!
好比:学号5和学号15,除以10余数都是5,都要坐5号桌。
但一张桌子只能坐一个人呀!这就发生了辩论。
5. 开放地点法(办理辩论)

老师规定:如果5号桌已经有人了,那你就今后找,坐下一张空桌(好比6号、7号……直到找到空桌)。
这就是开放地点法——如果原来该坐的位置被人占了,就按照规则找下一个空位。
6. 装载因子(α)是什么?

装载因子 = 门生人数 / 桌子总数
好比:讲堂有10张桌子,如今坐了7个门生,那么装载因子 α = 7/10 = 0.7。
α越大,分析讲堂越满(桌子快坐满了);α越小,分析讲堂越空。
7. 最坏环境下查找一个元素的时间复杂度

如今,有一个新同砚来找人(查找):他想知道学号15的同砚坐在那边。

  • 他先算了一下:15÷10=1余5,以是应该去5号桌找。
  • 但5号桌坐的是学号5的同砚,不是15!
  • 于是他又去6号桌找,也不是;
  • 再去7号桌找,还不是……
    最坏的环境:他大概找遍了讲堂里全部的桌子(10张),才发现学号15的同砚坐在末了一张桌,大概根本不在讲堂(没来上学)。
以是,最坏环境下,他须要找遍全部桌子。
讲堂有10张桌子,但只有7个门生(α=0.7),他最多要找10次。
如果讲堂有100张桌子(但只有70个门生,α=0.7),他最坏要找100次。
注意:桌子总数(m)和门生人数(n)有关系:m = n / α。
好比:n=70,α=0.7,那么m=70/0.7=100张桌子。
以是,最坏环境要找O(m) = O(n/α)次。
但由于α是常数(好比0.7),以是O(n/α)可以简化为O(n)。
也就是说:最坏环境下,找一个人须要找的次数和讲堂里的桌子总数成正比,而桌子总数又和门生人数差不多(由于α是常数),以是最坏环境找人的时间和小班里的门生人数n成正比。
因此,时间复杂度是O(n)。
✅ 总结答案:

最坏环境下查找一个元素的时间复杂度是 O(n)(也就是找人的时间和小班里的人数n成正比)。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表