算法设计与分析——散列表/哈希表(Hash Table):直接寻址表

分类目录:《算法设计与分析》总目录
相关文章:
·散列表/哈希表(Hash Table)(一):基础知识
·散列表/哈希表(Hash Table)(二):直接寻址表
·散列表/哈希表(Hash Table)(三):散列表原理
·散列表/哈希表(Hash Table)(四):散列函数
·散列表/哈希表(Hash Table)(五):开放寻址法
·散列表/哈希表(Hash Table)(六):完全散列


当关键字的全域 U U U比较小时,直接寻址是一种简单而有效的技术。假设某应用要用到一个动态集合,其中每个元素都是取自于全域 U = { 0 , 1 , ⋯   , m − 1 } U=\{0, 1, \cdots, m-1\} U={0,1,,m1}中的一个关键字,这里 m m m不是一个很大的数。另外,假设没有两个元素具有相同的关键字。

为表示动态集合,我们用一个数组,或称为直接寻址表,记为 T [ 0 , 1 , ⋯   , m − 1 ] T[0, 1, \cdots, m-1] T[0,1,,m1]。其中每个位置,或称为,对应全域 U U U中的一个关键字。下图描绘了该方法。槽 k k k指向集合中一个关键字为 k k k的元素。如果该集合中没有关键字为 k k k的元素,则 T [ k ] = N o n e T[k]=None T[k]=None
直接寻址表描述
对于某些应用,直接寻址表本身就可以存放动态集合中的元素。也就是说,并不把每个元素的关键字及其卫星数据都放在直接寻址表外部的一个对象中,再由表中某个槽的指针指向该对象,而是直接把该对象存放在表的槽中,从而节省了空间。我们使用对象内的一个特殊关键字来表明该槽为空槽。而且,通常不必存储该对象的关键字属性,因为如果知道一个对象在表中的下标,就可以得到它的关键字。然而,如果不存储关键字,我们就必须有某种方法来确定某个槽是否为空

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

von Neumann

您的赞赏是我创作最大的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值