首页 > 其他分享 >哈希线性探测法 - 运行时间

哈希线性探测法 - 运行时间

时间:2023-05-26 20:15:38浏览次数:56  
标签:最坏 列表 情况 哈希 线性 探测

我正在试着和一位朋友一起做作业,一个问题是询问用于线性探测方法的搜索,添加和删除的平均运行时间。 我认为它是O(n),因为它必须检查一定数量的节点,直到它找到一个打开的节点为止。 搜索时,它从原始索引处开始并向上移动,直到找到所需的数字。 但我的朋友说这是O(1)。 哪一个是对的? 

 

最满意答案

当我们谈论渐近复杂性时,我们通常会考虑非常大的n。 现在,对于哈希表中的碰撞处理,一些方法是链接哈希和线性探测。 在这两种情况下,可能发生两件事情(这将有助于回答您的问题):1.您可能需要调整散列表的大小,因为它已满。2.可能会发生冲突。

在最糟糕的情况下,它将取决于你如何实现你的散列表,比如在线性探测中你找不到数字,你继续移动并且你要查找的数字到最后。 这是O(n)最坏情况下的运行时间。 即将发生链接散列技术时,发生冲突时,处理它们时说我们已将密钥存储在平衡二叉树中,因此最坏情况下的运行时间为O(log n)。

现在来看最好的情况下,我认为没有混淆,无论哪种情况,它都是O(1)。

O(n)会发生在最坏的情况下,而不是一个设计良好的散列表的平均情况。 如果这种情况在平均情况下散列表开始发生不会在数据结构中找到一个位置,因为平均而言,平衡树会始终给您O(log n),并且ON TOP OF THAT也会保留该顺序。

很抱歉说这个,但不幸的是你的朋友是对的 你的情况会发生在最坏的情况下。

还可以在这里查看更多信息,例如分期运行时间: 哈希表的时间复杂度

 

转:https://www.656463.com/wenda/slpzxxtcyxsj_118

标签:最坏,列表,情况,哈希,线性,探测
From: https://www.cnblogs.com/blogzero/p/17435696.html

相关文章

  • 3.1 线性回归
    3.1.1线性回归的基本元素整节理论知识,详见书本。3.1.2向量加速化%matplotlibinlineimportmathimporttimeimportnumpyasnpimporttorchfromd2limporttorchasd2l#以后常用的计时器classTimer:#@save"""记录多次运行时间"""def__init__(self......
  • 3.2 线性回归从零开始实现
    %matplotlibinlineimportrandomimporttorchfromd2limporttorchasd2l3.2.1生成数据集为了简单起见,使用易于可视化的低维数据。使用线性模型\(\boldsymbol{y}=\boldsymbol{Xw}+b+\epsilon\)生成数据集及其标签,其中合成的数据集是一个矩阵\(\boldsymbol{X}\in\R^{1......
  • 16 张图解带你掌握一致性哈希算法
    https://developer.huawei.com/consumer/cn/forum/topic/0203810951415790238发表于2022-02-2414:258571查看摘要:一致性哈希是什么,使用场景,解决了什么问题?本文分享自华为云社区《16张图解|一致性哈希算法》,作者:小林coding。如何分配请求?大多数网站背后肯定不是只有......
  • 哈希算法之md5和sha1
    MD5(MessageDigestAlgorithm5)和SHA1(SecureHashAlgorithm1)都是常见的哈希算法,用于生成哈希值。然而,它们有一些区别。哈希长度:MD5生成的哈希值长度为128位(16字节),而SHA1生成的哈希值长度为160位(20字节)。SHA1相对于MD5具有更大的哈希长度,因此具有更低的碰撞概率。安全性:MD5......
  • 什么是一致性哈希?一致性哈希是如何工作的?如何设计一致性哈希?
    如果你有n个缓存服务器,一个常见的负载均衡方式是使用以下的哈希方法:服务器索引=哈希(键)%N,其中N是服务器池的大小。让我们通过一个例子来说明这是如何工作的。如表5-1所示,我们有4台服务器和8个字符串键及其哈希值。为了获取存储某个键的服务器,我们执行模运算f(键)%......
  • 哈希
    哈希单模哈希把一个字符串\(s_1-s_n\)想成一个\(n\)位的\(k\)进制数,有一个模数$(s_1\timesk^{n-1}+s_2\timesk^{n-2}+s_n\timesk)\%\\text{mod}$模数选取:\(\text{mod}\)选取$\approx10^9$的质数运算代价:较慢冲突概率:最大双模哈希$(s_1\timesk^{n-......
  • Problem E: STL——灵活的线性表
    HomeWebBoardProblemSetStandingStatusStatisticsProblemE:STL——灵活的线性表TimeLimit:1Sec  MemoryLimit:128MBSubmit:5192  Solved:2169[Submit][Status][WebBoard]Description数组和链表是我们熟知的两种线性结构,但是它们不够......
  • 哈希算法
    哈希算法哈希算法哈希算法(Hash)又称摘要算法(Digest),它的作用是:对任意一组输入数据进行计算,得到一个固定长度的输出摘要。哈希算法最重要的特点就是:相同的输入一定得到相同的输出;不同的输入大概率得到不同的输出。哈希算法的目的就是为了验证原始数据是否被篡改。Java字符串......
  • 使用 TensorFlow 自动微分和神经网络功能估算线性回归的参数(Estimate parameters for
    大多数的深度学习框架至少都会具备以下功能:(1)张量运算(2)自动微分(3)神经网络及各种神经层TensorFlow框架亦是如此。在《深度学习全书公式+推导+代码+TensorFlow全程案例》——洪锦魁主编清华大学出版社ISBN978-7-302-61030-4这本书第3章《TensorFlow架构与主要功能》这一......
  • 特殊哈希表-原地哈希
    例题一链接:41.缺失的第一个正数题解一种简单的方法是利用map,但是空间复杂度不符合条件;另一种简单的方法是直接排序,但是时间复杂度不符合条件。于是我们结合两者,提出一种算法,姑且称之为·原地哈希·。该算法是基于比较的排序,不需要额外的空间:给定长度为N的数组,我们想将其变换为......