哈希表可能霎时间听来很困难的样子,简单来说就是实现一个快速版本的电话本。我来举一个例子把,比如你要查找王某某这个人的联系方式,那么你肯定不可能打乱顺序的查找,需要ABC的排序,排序的话是不是就快了很多呢。没错,哈希就是实现的这个过程。
哈希表(Hash Table),也叫散列表,是一种通过键(Key)直接访问内存存储位置的数据结构。它通过哈希函数将键映射到表中一个位置来访问记录,这样就能以接近O(1)的时间复杂度进行数据的插入、删除和查找操作。

以上图片源自网络
我们了解哈希之后,我们需要知道哈希的工作原理。
其实关键点在于俩方面,一个是如何建立一个可用的哈希函数,一个是如何避免冲突
哈希函数需要有以下的要求,一个是确定性,就是你查找一个电话号码必须无论查找多少次都只能查找出那么一个人来,不能这次小明下次小红。高效性,计算速度一定要快,不能说时间占用比顺序查找都慢,均匀性,也就是说查找每个值的时间尽量是均匀的。
接下来我们举例说明一个demo
// 简单哈希函数示例
function simpleHash(key, tableSize) {
let hash = 0;
for (let i = 0; i < key.length; i++) {
hash += key.charCodeAt(i);
}
return hash % tableSize;
}
// 使用示例
const tableSize = 10;
console.log(simpleHash("apple", tableSize)); // 输出: 0
console.log(simpleHash("banana", tableSize)); // 输出: 1
console.log(simpleHash("orange", tableSize)); // 输出: 7
至于代码的话很好理解,就是把每一个值全部写入hash表里面 每个ascii里面相加 然后求模。
接下来就是如何避免冲突呢?
这个后续单独开一个章节把
总结就是 了解了哈希,进行了简单的举例说明。。