当前位置: 首页 > 编程笔记 >

数据结构中的溢出处理

百里涛
2023-03-14
本文向大家介绍数据结构中的溢出处理,包括了数据结构中的溢出处理的使用技巧和注意事项,需要的朋友参考一下

对于新对(键,元素)已满,主存储桶发生溢出。

我们可能会解决

以某种系统的方式在哈希表中搜索未满的存储桶。

  • 线性探测(线性开放寻址)。

  • 二次探测。

  • 随机探测。

通过允许每个存储桶保留其为本地存储桶的所有对的列表来消除溢出。

  • 数组线性列表。

  • 链。

执行开放寻址以确保所有元素都直接存储在哈希表中,因此它尝试解决冲突以实现各种方法。

通过将数据放入表中的下一个空槽来执行线性探测,以解决冲突。

线性探测的性能

  • 最坏情况的查找/插入/擦除时间是θ(m),其中m被视为表中的对数。

  • 当所有对都在同一群集中时,会发生这种情况。

线性探测问题

  • 标识符倾向于聚集在一起

  • 邻近集群趋于合并

  • 增加或延长搜索时间

二次探测

线性探测搜索桶(H(x)+ i2)%b; H(x)表示x的哈希函数

二次探测将i的二次函数实现为增量

检查铲斗H(x),(H(x)+ i2)%b,(H(x)-i2)%b 1 == i <=(b-1)/ 2

b表示为4j + 3形式的质数,j是整数

随机探测

随机探测执行随机数合并。

H(x):= (H’(x) + S[i]) % b
S[i] is a table along with size b-1
S[i] is indicated as a random permutation of integers [1, b-1].
 类似资料:
  • 本文向大家介绍CSS3中对溢出的处理?相关面试题,主要包含被问及CSS3中对溢出的处理?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: cnkOhu text-overflow属性,值为clip是修剪文本;ellipsis为显示省略符号来表被修剪的文本;string为使用给定的字符串来代表被修剪的文本。    

  • 在CSS中,如果设置了一个盒子的宽度与高度,则盒子中的内容就可能超过盒子本身的宽度或高度。此时,可以使用 overflow 属性来控制内容溢出时的处理方式。 overflow属性的可选值有 visible | hidden | scroll | auto,除了body 和 textarea 的默认值为auto外,其它元素的默认值为visible。 如果不设置 overflow属性,则默认值就是 v

  • 我正在尝试将一个旧的个人Java项目转换为Rust,作为一种学习体验。基本数据结构如下所示: 有一个主要的。有作者列表和书籍列表 每个作者都有一份他/她写过的书的清单 每本书都有作者的参考资料 在Java程序中,我决定程序中的每本书(“霍比特人”)不应该存在多个对象。如果一本新书(可能通过用户输入)进入系统,我要做的第一件事是测试它是否已经在,然后用

  • 问题内容: 使用numpy,我对函数有以下定义: 在优化例程中,对该功能进行了多次评估。它经常引发异常: 我知道操作数不能存储在为浮点数分配的空间中。但是我该如何克服这个问题呢? 问题答案: 您可以使用bigfloat软件包。它支持任意精度的浮点运算。 http://packages.python.org/bigfloat/ 您是否正在使用功能优化框架?他们通常实现价值界限(使用惩罚性条款)。试试

  • 问题内容: 我想创建一个SQL脚本,可以重新创建我已经拥有的数据库。我想重新创建内部没有数据的数据库。 那么sqlplus是否可以导出用户的数据库? 问题答案: 有两种基本方法。 首先是导出转储文件。可以使用Datapump实用程序: 了解更多。 Datapump是在Oracle10g中引入的。在数据库的早期版本中,我们可以使用EXP实用程序执行相同的操作。 要导入文件,我们使用匹配(或)实用程序

  • 到目前为止,我们已经讨论了为了实现文件系统而需要存在于硬盘上的数据结构。 在这里,我们将了解要实现文件系统需要存在于内存中的数据结构。 内存数据结构用于文件系统管理以及通过缓存提高性能。 该信息在安装时间加载并在弹出时丢弃。 1. 内存安装表 内存中安装表包含正在安装到系统的所有设备的列表。 每当连接维护到设备时,其输入将在安装表中完成。 2. 内存目录结构缓存 这是CPU最近访问的目录列表。列表