很多人在学哈希表的时候发现,哈希表不就是 JS 对象的一个简化版吗?
哈希的难点不在「表」这个字(key,value),它的难点在于「哈希」两个字。
什么是哈希?
看看大佬们的回答:https://www.zhihu.com/question/330112288/answer/744362539
哈希表的难点
场景
假设哈希表 hash 里有一万对 key-value,如何使得读取 hash[‘xxx’] 最快
解决方法
- 不作任何优化,hash[‘xxx’] 需要遍历所有 key, O (n)
- 对 key 排序,使用二分査找,O (log2n)
- 用字符串对应的 ASCI 数字做索引,O (1)
- 对索引做除法取余数,O (1)
- 冲突了怎么办,冲突了就顺延