- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在寻找一些 混凝土 (外行;非学术)各种类型的哈希数据结构的定义,特别是哈希表、哈希列表和哈希映射。在线搜索为所有这些提供了许多有用的链接,但从未给出明确定义何时适合使用它们。
(1) 从实际的角度来看,这三个有什么区别?
(2) 他们的操作的运行时间有何不同?是否有明确的实例应该使用或避免使用其他类型的哈希?
(3) 这些与 map ADT 有何关系?它们只是它的不同实现,还是完全不同的野兽?
感谢您在这里的任何见解!
最佳答案
有一个包含键和值之间映射的抽象数据结构。它有几个不同的名称,包括 Map
, Dictionary
, Table
, Association Table
, 和更多。
这个数据结构应该支持的最基本的操作是添加、删除和检索一个值,给定它的关联键。围绕这个基本概念有一些变化和补充——例如,一些结构支持迭代所有键值对,一些结构支持每个键多个值等。各种实现之间在时间和空间复杂度上也存在差异。
在此数据结构可用的多种实现中,一些最流行的实现使用 hash functions快速访问时间。这些实现有时被称为 Hash Table
或 Hash Map
,您可以 read more about them in Wikipedia .哈希表实现之间的性能也有所不同,有些达到分摊 O(1) 插入和访问复杂性(以使用大量空间的代价)。
A 哈希列表 ,另一方面,是另一回事,更多的是关于数据结构的使用,而不是它的实际结构。散列列表通常只是散列值的常规列表,没有什么特别之处。它在验证大量数据的完整性时使用 - 在这种情况下,它允许独立验证各种数据块,从而只修复或检索坏块。这与使用单个散列值对整个数据进行散列相反,在这种情况下,失败意味着必须修复或再次检索所有数据。
关于data-structures - 哈希 : Tables, 列表和 map ,哦,天哪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7474573/
到目前为止,我尝试的任何方法都未能让 Firefox 在某些文本下划线。 根据 Google 结果,这个问题已为人所知并已记录了五年多......这不可能是真的......到底发生了什么? 有人知道任
考虑一个示例,其中方法是纯虚拟的,采用模板化类型的参数(从外部类型注入(inject)),并且该模板化类型是本地类型(在函数体中定义)。这种情况会导致 g++ 下的编译时错误。不可否认,这是一个极端案
更新“Web 应用程序”(从开发服务器“重新发布”到实时服务器)同时保留用户数据(例如存储在文件系统中的图像、视频和音频)的最佳方法是什么) 在 VS 2010 构建/发布设置中? 此外,在这些更新期
本人第一次发帖,如有错误请多多包涵。另外,这是我第一次广泛使用 jquery,所以再一次...不要打败我。 好吧,情况如下... 我有一个 WP 模板,它的 jquery 相当多(不是我的),我不想尝
我试图用鼠标在 Canvas 上画一个圆圈,但我的数学是错误的,我不知道如何修复它。我希望当您单击并拖动以形成圆圈时,圆圈的顶部(或底部)和圆圈的侧面与光标的十字准线对齐。 我有一个 fiddle s
大家好, 我确信我陷入了回调噩梦,试图从传递 {query} 的 Mongoos.count 获取简单值。我可以在回调中获取该值并在控制台中看到它正常,但是尝试将其从异步回调设置中取出来却让我感到困惑
box model应该很简单,但我就是不明白。 这是一个无意义的表格 Box model test Box 1 Box 2 及其 CSS body
背景:我正在研究 framework它基于现有的 Java 类模型生成 C++ 代码。因此,我无法更改下面提到的循环依赖。 给定: 父子类关系 父级包含子级列表 用户必须能够在运行时查找列表元素类型
F#一出来,我就要在异步/并行编程领域发财了。一个 answer to this question在描述 Tasks、Parallel LINQ 和 Reactive Framework 之间的差异方
我正在尝试了解 iPhone 操作系统上的 OpenGL 对象模型。我当前正在屏幕上渲染到几个不同的 UIView(基于 CAEAGLayer 构建)。我目前将其中每一个都使用单独的 EAGLCont
关于 Google map 、AJAX 和一些后端数据的快速问题。 我将如何创建使用我存储在数据库中的信息“实时”更新的谷歌地图? 我认为它在我脑海中运作的方式是。 数据库从用户那里收集带有地理标记的
简单地说,我正在尝试制作一款全屏游戏。 我尝试使用以下代码: GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironm
好的.....我已经完成了所有相关问题的阅读和一些 MSDN 文章,以及大约一天的谷歌搜索。 这个问题的当前“最先进”答案是什么: 我正在使用 VS 2008,C++ 非托管代码。我有一个包含很多 D
在开发内容管理系统时,我遇到了一些困难。回到我的数据模型,我注意到一些问题可能会随着时间的推移变得更加普遍。 即,我想维护用户记录修改的审计跟踪(更改日志)(甚至会记录用户记录修改)。由于包含任意数量
假设我有一个很大的对象列表(数千或数万),每个对象都带有一些标签。有数十或数百个可能的标签,它们的使用遵循典型的幂律:有些标签使用得非常频繁,但大多数很少见。事实上,除了最常见的几十个标签之外,所有标
和我一起回到三年前吧。我记得构建的 Web 控件通过 AJAX 动态插入到页面的 HTML 中,然后就地呈现。我们使用了 Prototype JavaScript 库和 XMLHTTP Request
这里很沮丧。我不是数据库管理员,但可以绕过。我正在针对 Progress OpenEdge 数据库编写一些 ODBC 查询,我们只能查看该数据库。很长一段时间以来都没有出现任何问题,直到最近他们更改了
我认为我面临着一种独特的情况,主要是因为我找不到任何可以帮助我解决这个问题的方法。我正在尝试在蒙版元素内添加视差效果。在元素可以......“视差?”之前......它必须滑入视野,在蒙面容器内。 在
您在 Rails 应用程序的 Selenium 测试中使用哪些数据?您是否从固定装置加载?使用现有的开发数据库?使用单独的(非 fixture )数据库? 我正在考虑我的选择。我有一个带有大型 Sel
我有一个 Ruby on Rails 项目(使用 git 进行版本控制),其中包含许多存在于各种公共(public) GitHub 存储库中的外部 JavaScript 依赖项。将这些依赖项包含在我的
我是一名优秀的程序员,十分优秀!