楼主:
uopsdod (pcman)
2020-11-24 16:07:26【图解算法教学】
还在用古老的二元搜寻法?是时候跟上“Hash Search” 的车尾灯了!
封面图:https://imgur.com/8GfYiTO
架构图:https://imgur.com/SbC5IKY
在我们还没学资料结构前,通常都用Linear Search找东西。
之后,我们学了二元树,开始利用二元搜寻法,大幅提升搜寻效能。
然而,在算法的世界中:
还有比Binary Search还快的东西,即是这次要介绍的“Hash Search”!
影片连结:https://bit.ly/2Uv2sBf
影片章节含有:
00:00 开头
00:02 Linear Search
00:58 Binary Search
02:38 Hash Search
04:38 结尾
[更新2020.11.25]
感谢版友们提供的建议,的确有地方我可以改进,这边直接帮大家整理出重要内容:
Linear Search : BigO(n)
Binary Search : BigO(n) ~ BigO(log(n))
Hash Seach : BigO(n) ~ BigO(1)
可以看到,在最佳状况下,Hash Search的效率是最快的,一步到位。
而之所以可以做到这样的效能,是因为Hash Seach是by Index的搜寻方式。
比如说将 29 这个数字 经过hash之后:
9 = hash(29)
就能拿到 index 9 ,我们只要去查 array[9] == 29 是否正确,就能拿到结果。
当然,现实上没这么理想,会遇到“碰撞”,也就是不同来源数字hash到同一个index
这部分将在后续实作中介绍,这次主要是帮大家抓到使用“Hash Search”的诱因。
最后补充,Binary Search由于会先将资料排序,所以更适合用在“范围搜寻”。
以上内容为影片重点萃取,有需要可以进一步参考影片完整介绍,感谢各位的建议!
作者:
yuci (vu03)
2020-11-24 16:11:00空间换时间,跟我们肝换钱一样
作者:
ckvir (ckvir)
2020-11-24 16:32:00讲的没有很深,建议看 wiki
作者:
leo0519 (leo0519)
2020-11-24 17:19:00unordered_map :
作者:
Dukkha (新手)
2020-11-24 17:28:00感谢分享 做的很好懂 很棒
作者:
GGFACE (ggface)
2020-11-24 18:17:00赞 订阅 分享
作者:
nikolas (你花多少时间?)
2020-11-24 20:14:00奇怪 有人愿意分享 不想看也不必要嘘吧 是生活很不顺吗?
作者: yolasiku (我的绿卡能吃吗) 2020-11-24 20:26:00
想来这骗流量腻 可惜我一次都没点进去过
即使洗流量也无所谓,这种东西可以作为科普的入门阿,如果什么东西都说一次就会了,老师存在的价值就没那么重要
作者:
MrBigTree (Mr.BigTree)
2020-11-24 21:17:00上面真的一堆自觉很懂就不想复习的人呢
作者:
Dukkha (新手)
2020-11-24 21:55:00科普的东西很好啊 多让台湾人了解科普知识是好事。 点一次人家也赚不到0.1元
作者:
DrTech (竹科管理处网军研发人员)
2020-11-24 23:24:00如果要传递知识,为什么不把内容直接放在这篇文章,最后再补充连结,达到传递与导流双重目的。而是这篇只作为导流,不顺便放知识呢。建议原PO思考一下,达到目的有时有更好的方法。不要只学那些低级的导流方法。另外binary search与hash适用时机不同,标题过度夸张,讲的好像binary search很落后一样,也让人有不专业,或只为了赚钱的观感。建议以后也可更聪明的表达,让自己更专业。总觉得这些教学文用意良好,只是被一些低级的媒体影响了传递知识的方式,蛮可惜的。最后读者的定位也很重要,想清楚这些内容谁看,自己与读者的价值会最大化呢。这时候内容的品质,以及引流的channel会更精准,少了很多负面观感。期待更好的内容,真的。
作者:
labbat (labbat)
2020-11-25 02:14:00有办法用正反器兜出来
作者:
Dukkha (新手)
2020-11-25 02:17:00有时候做影片比较好懂 文字没这么好懂 这种艰涩知识类的根本赚不到钱 真的没必要这么严苛 台湾网红一堆垃圾影片都几百万点阅 不是对台湾更糟吗
作者:
loadingN (sarsaparilla)
2020-11-25 02:20:00楼上说奶台是垃圾????
作者:
Dukkha (新手)
2020-11-25 04:29:00........ 有个弹钢琴没露脸的居然1200万点阅...
作者:
DrTech (竹科管理处网军研发人员)
2020-11-25 09:43:00感谢原PO,的站内信回复,真的是有心吧事情做得更好的人,谢谢
下这个标题大概不知道codeforces有很多题目用hashmap会 timeout 用treemap反而可以AC
作者:
stosto (树多)
2020-11-25 15:32:00这个去软件版比较合适吧
很简单啊,因为这版叫tech job版,不是soft job 也不是 student 版发错位置当然要嘘
作者:
yamakazi (大安吴彦祖)
2020-11-25 17:41:00map: 红黑树(二元搜寻树的一种特例unordered_map: hash,使用上不需要知道次序的建议选第二种第一种比较快但占空间
作者:
bitcch (必可取)
2020-11-25 20:15:00说真的 讲的太浅 大概是给高中生认识计概的程度
板主不处理这种和本板无关的文,到时候就一堆商业心得分享广告文洗板你要创业那就po在创业板,po在这是在欠嘘?
作者:
arthas11 (straycat)
2020-11-26 10:30:00难得看到教学型文章,给推