algorithm - 哈希表和链接方法
问题描述
在我的哈希表中,每个列表都进行了排序(链接方法)。1.这将如何影响搜索现有密钥的运行时间 2.这将如何影响搜索丢失密钥的运行时间?3.这将如何影响添加和删除密钥的搜索时间?
解决方案
1.这将如何影响搜索现有密钥的运行时间。
没那么多,因为碰撞很少发生。
N 是哈希表的大小,M 是碰撞次数。
M 通常太小(从 0-50 ),因此速度没有太大变化。
如果 M 太大且接近 N,在这种情况下,我们的哈希算法很差,应该改进。
如果你有一个糟糕的散列算法,最坏的情况 M=N,所以你有一个复杂度为 O(Log N) 的二进制搜索。
哈希表的好处被破坏了。退化 O(1) -> O(Log N)
所以无论如何我们都应该避免它。
2.这将如何影响搜索缺失键的运行时间。
与 1 的答案相同。M 通常很小,如果不是,请重写您的哈希算法。
推荐阅读
- python - 为什么我在 node.js 中调用 python-shell 时出现 TypeError?
- javascript - 如何将透明的引导导航栏添加到 Fullpage.js 站点?
- apache-spark - PySpark withCoumn 函数拉出某些字段
- python - 动态采用另一个类的实例的方法
- xml - 如何为多项选择题设计xsd?
- git - 通过不同的分支恢复对文件夹的 git 引用
- jboss - JBoss CLI:在没有名称属性的元素中添加嵌套元素(在“jwt”中添加“key”元素)
- selenium - 如何在肯定报告中附加屏幕截图?
- java - 我们可以在父类的帮助下访问不同包中的受保护变量吗
- xml - PDF Birt中的阿拉伯语翻译格式不起作用