未分類 10 11 月 2020 各位都是怎么学会 Hash Table 的 各位都是怎么学会 Hash Table 的 資深大佬 : Bechbaliq 4 有没有讲解浅显易懂的 主要是鄙人看点数学公式就开始犯迷糊了,因为看不懂。。。 大佬有話說 (17) 資深大佬 : jmc891205 hash table 有啥数学公式 資深大佬 : kuangwinnie 画个图就明白了 資深大佬 : misaka19000 https://www.nosuchfield.com/2016/07/29/the-python-implementationp-of-HashTable/ 看我以前写的文章 資深大佬 : ericls @misaka19000 Python 的 dict 不就是个 hash table? 資深大佬 : irytu 看看维基百科 照着定义基本能自己手写一个具备基本功能的简单的了 然后再去想想怎么优化(多线程读写、减少 collision 等) 資深大佬 : cheesea 参考 redis hash 的实现,看完你就懂了 資深大佬 : ericgui 你说的数学公式是 hash 算法吧 你先别着急啊,你先把 hash table 用着就行了啊 資深大佬 : whincwu142 hash 表主要两部分:散列函数和碰撞冲突检测。涉及数学公式主要是散列函数和冲突检测中的概率计算吧,这个了解结论即可 資深大佬 : azcvcza 散列分布公式难一点,hash table 不就是字典 資深大佬 : ilumer 可以看这个 https://algs4.cs.princeton.edu/34hash/ 資深大佬 : ChanKc 本科上课学的 資深大佬 : slipper 1.Hash Table 是数据结构,用数组实现2. Hash 是一种算法,有很多种角度的实现(快,冲撞概率小,不可逆等等),基本上学怎么实现哈希算法就等于学数学了。最简单的哈希算法就是取模。3.综合以上,你应该先搞清楚算法和数据结构的区别。 資深大佬 : misaka19000 @ericls #4 哈哈哈这我还是第一次知道 資深大佬 : baiyi 哈希表本身应该很好理解,哈希冲突的解决方案也还行。难的是 hash 的计算和装载因子的计算,这些才是数学公式的部分,正常使用应该可以不用学。 資深大佬 : wysnylc 学懂 ConcurrentSkipListMap,再回头学就简单多了 資深大佬 : vision1900 JavaScript 里 Object 的实现一般都是 HashTable, 可以借鉴这个视频 資深大佬 : hello2060 hastable 不用知道啊,知道各项操作的复杂度都是 1,比 treebased table 要好就行了。就是个 dic 嘛 然后知道 key 是通过哈希函数转换到一个 index 上,知道一般的实现就行了