Bucket Sort 好像有 Hash Table 的体现
1
jmc891205 2020-11-02 23:52:36 +08:00
hash table 有啥数学公式
|
2
kuangwinnie 2020-11-03 00:21:56 +08:00
画个图就明白了
|
3
misaka19000 2020-11-03 00:24:24 +08:00
|
4
ericls 2020-11-03 02:24:44 +08:00 via iPhone 1
@misaka19000 Python 的 dict 不就是个 hash table?
|
5
irytu 2020-11-03 02:54:31 +08:00 via iPhone
看看维基百科 照着定义基本能自己手写一个具备基本功能的简单的了 然后再去想想怎么优化(多线程读写、减少 collision 等)
|
6
cheesea 2020-11-03 03:07:26 +08:00
参考 redis hash 的实现,看完你就懂了
|
7
ericgui 2020-11-03 03:27:08 +08:00
你说的数学公式是 hash 算法吧
你先别着急啊,你先把 hash table 用着就行了啊 |
8
whincwu142 2020-11-03 07:29:14 +08:00 via Android 1
hash 表主要两部分:散列函数和碰撞冲突检测。涉及数学公式主要是散列函数和冲突检测中的概率计算吧,这个了解结论即可
|
9
azcvcza 2020-11-03 09:36:24 +08:00
散列分布公式难一点,hash table 不就是字典
|
10
ilumer 2020-11-03 09:50:01 +08:00
|
11
ChanKc 2020-11-03 10:06:39 +08:00
本科上课学的
|
12
slipper 2020-11-03 10:08:51 +08:00
1.Hash Table 是数据结构,用数组实现
2. Hash 是一种算法,有很多种角度的实现(快,冲撞概率小,不可逆等等),基本上学怎么实现哈希算法就等于学数学了。最简单的哈希算法就是取模。 3.综合以上,你应该先搞清楚算法和数据结构的区别。 |
13
misaka19000 2020-11-03 10:12:57 +08:00
@ericls #4 哈哈哈这我还是第一次知道
|
14
baiyi 2020-11-03 10:17:09 +08:00
哈希表本身应该很好理解,哈希冲突的解决方案也还行。难的是 hash 的计算和装载因子的计算,这些才是数学公式的部分,正常使用应该可以不用学。
|
15
wysnylc 2020-11-03 10:39:24 +08:00
学懂 ConcurrentSkipListMap,再回头学就简单多了
|
16
vision1900 2020-11-03 10:50:20 +08:00
JavaScript 里 Object 的实现一般都是 HashTable, 可以借鉴这个视频
&t=1217s |
17
hello2060 2020-11-03 10:58:51 +08:00
hastable 不用知道啊,知道各项操作的复杂度都是 1,比 treebased table 要好就行了。就是个 dic 嘛
然后知道 key 是通过哈希函数转换到一个 index 上,知道一般的实现就行了 |