什么是索引?为什么我们不对所有内容使用哈希?

时间:2019-04-14 12:39:50

标签: indexing data-structures hashmap

查看有关数据结构等的一些采访信息。

因此,据我所知,数组是用于索引的O(1),我认为这意味着找到数组中空间x处包含的特定元素。只是想确认一下,因为我正在第二次猜测自己。

此外,哈希映射为O(1),用于索引,搜索,插入和删除。因为哈希映射始终是最佳解决方案,这是否会使任何数据结构问题变得毫无意义?

谢谢

1 个答案:

答案 0 :(得分:1)

Well indexing is not only about arrays,

according to this从表行检索用户的用户ID,因为无法分配ID-索引正在创建指向文件夹,文件和记录的位置的表(索引) 。根据目的,索引基于文件名,数据库记录中的关键数据字段,文件中的文本或图形或视频文件中的唯一属性来标识资源的位置。

对于您的第二个问题,由于各种原因,哈希图不是绝对或最佳数据结构,主要是:

  • 碰撞
  • 哈希函数计算时间
  • 使用了额外的内存

还有很多数据结构问题,其中哈希表并不出色:

  • 用于查找第k个最小元素并支持更新的数据结构(Hashmap就像bruteforce,因为它不对元素进行排序,因此我们需要诸如Balanced Binary Search Tree这样的东西)

  • 用于查找单词是否在字典中的数据结构(肯定可以使用哈希图,但Trie更快,内存更少)

  • 用于在具有更新的数组的任何范围内查找最小元素的数据结构(再次,哈希映射对此太慢了,我们需要像分段树之类的东西)

  • ...