Update 哈希表理论基础.md

修改typo,优化句子表达。
This commit is contained in:
Jingqi Sun
2024-04-06 22:06:39 +08:00
committed by GitHub
parent 02afd70dec
commit 74d38fc696

View File

@ -12,11 +12,11 @@
## 哈希表
首先什么是 哈希表哈希表英文名字为Hash table国内也有一些算法书籍翻译为散列表大家看到这两个名称知道都是指hash table就可以了
首先什么是哈希表哈希表英文名字为Hash table国内也有一些算法书籍翻译为散列表大家看到这两个名称知道都是指hash table就可以了
> 哈希表是根据关键码的值而直接进行访问的数据结构。
这么官方的解释可能有点懵,其实直白来讲其实数组就是一张哈希表。
这么官方的解释可能有点懵,其实直白来讲其实数组就是一张哈希表。
哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素,如下图所示:
@ -113,7 +113,7 @@ std::unordered_map 底层实现为哈希表std::map 和std::multimap 的底
其他语言例如java里的HashMap TreeMap 都是一样的原理。可以灵活贯通。
虽然std::setstd::multiset 的底层实现红黑树,不是哈希表,std::set、std::multiset 使用红黑树来索引和存储不过给我们的使用方式,还是哈希法的使用方式,即key和value。所以使用这些数据结构来解决映射问题的方法我们依然称之为哈希法。 map也是一样的道理。
虽然std::setstd::multiset 的底层实现基于红黑树而非哈希表,它们通过红黑树来索引和存储数据。不过给我们的使用方式,还是哈希法的使用方式,即依靠键key来访问值value。所以使用这些数据结构来解决映射问题的方法,我们依然称之为哈希法。std::map也是一样的道理。
这里在说一下一些C++的经典书籍上 例如STL源码剖析说到了hash_set hash_map这个与unordered_setunordered_map又有什么关系呢