mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 00:43:04 +08:00
Update 哈希表理论基础.md
修改typo,优化句子表达。
This commit is contained in:
@ -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::set、std::multiset 的底层实现是红黑树,不是哈希表,std::set、std::multiset 使用红黑树来索引和存储,不过给我们的使用方式,还是哈希法的使用方式,即key和value。所以使用这些数据结构来解决映射问题的方法,我们依然称之为哈希法。 map也是一样的道理。
|
||||
虽然std::set和std::multiset 的底层实现基于红黑树而非哈希表,它们通过红黑树来索引和存储数据。不过给我们的使用方式,还是哈希法的使用方式,即依靠键(key)来访问值(value)。所以使用这些数据结构来解决映射问题的方法,我们依然称之为哈希法。std::map也是一样的道理。
|
||||
|
||||
这里在说一下,一些C++的经典书籍上 例如STL源码剖析,说到了hash_set hash_map,这个与unordered_set,unordered_map又有什么关系呢?
|
||||
|
||||
|
Reference in New Issue
Block a user