圖解演算法 Hash Search有這麼快? - 工程師

Joseph avatar
By Joseph
at 2020-11-24T16:07

Table of Contents


【圖解演算法教學】

還在用古老的二元搜尋法?是時候跟上「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由於會先將資料排序,所以更適合用在「範圍搜尋」。

以上內容為影片重點萃取,有需要可以進一步參考影片完整介紹,感謝各位的建議!




--

All Comments

John avatar
By John
at 2020-11-28T12:11
空間換時間,跟我們肝換錢一樣
Eden avatar
By Eden
at 2020-12-03T08:53
std都寫好寫滿了
David avatar
By David
at 2020-12-08T01:17
講的沒有很深,建議看 wiki
Belly avatar
By Belly
at 2020-12-09T06:36
unordered_map :
Candice avatar
By Candice
at 2020-12-09T16:39
感謝分享 做的很好懂 很棒
Freda avatar
By Freda
at 2020-12-11T04:36
讚 訂閱 分享
Suhail Hany avatar
By Suhail Hany
at 2020-12-14T12:06
搜尋了id,相似東西一直重複po,洗文章?
Harry avatar
By Harry
at 2020-12-17T20:18
奇怪 有人願意分享 不想看也不必要噓吧 是生活很不順嗎?
Edith avatar
By Edith
at 2020-12-22T16:36
想來這騙流量膩 可惜我一次都沒點進去過
Hardy avatar
By Hardy
at 2020-12-23T13:39
即使洗流量也無所謂,這種東西可以作為科普的入門阿,
如果什麼東西都說一次就會了,老師存在的價值就沒那麼
重要
Hazel avatar
By Hazel
at 2020-12-24T23:54
上面真的一堆自覺很懂就不想複習的人呢
Quanna avatar
By Quanna
at 2020-12-26T07:32
科普的東西很好啊 多讓台灣人瞭解科普知識是好事。 點一
次人家也賺不到0.1元
William avatar
By William
at 2020-12-29T01:25
有人家裡不順就說人不順,家裡有人掛了嗎?
Charlotte avatar
By Charlotte
at 2020-12-31T14:35
如果要傳遞知識,為什麼不把內容直接放在這篇文章,最後再
補充連結,達到傳遞與導流雙重目的。而是這篇只作為導流,
不順便放知識呢。建議原PO思考一下,達到目的有時有更好的
方法。不要只學那些低級的導流方法。
Suhail Hany avatar
By Suhail Hany
at 2021-01-03T15:29
另外binary search與hash適用時機不同,標題過度誇張,講
的好像binary search很落後一樣,也讓人有不專業,或只為
了賺錢的觀感。建議以後也可更聰明的表達,讓自己更專業。
Ivy avatar
By Ivy
at 2021-01-06T13:30
總覺得這些教學文用意良好,只是被一些低級的媒體影響了傳
遞知識的方式,蠻可惜的。
Iris avatar
By Iris
at 2021-01-11T11:52
最後讀者的定位也很重要,想清楚這些內容誰看,自己與讀者
的價值會最大化呢。這時候內容的品質,以及引流的channel
會更精準,少了很多負面觀感。
Dora avatar
By Dora
at 2021-01-14T05:27
期待更好的內容,真的。
Elvira avatar
By Elvira
at 2021-01-15T01:39
有辦法用正反器兜出來
Olga avatar
By Olga
at 2021-01-18T02:47
有時候做影片比較好懂 文字沒這麼好懂 這種艱澀知識類的
根本賺不到錢 真的沒必要這麼嚴苛 台灣網紅一堆垃圾影
片都幾百萬點閱 不是對台灣更糟嗎
Hedda avatar
By Hedda
at 2021-01-19T01:18
樓上說奶台是垃圾????
Jake avatar
By Jake
at 2021-01-21T15:09
........ 有個彈鋼琴沒露臉的居然1200萬點閱...
Eartha avatar
By Eartha
at 2021-01-23T13:26
感謝原PO,的站內信回覆,真的是有心吧事情做得更好的人,
謝謝
Mary avatar
By Mary
at 2021-01-24T11:08
Elvira avatar
By Elvira
at 2021-01-28T21:16
噓的有什麼問題?不想看就滾
Ula avatar
By Ula
at 2021-01-29T08:03
下這個標題大概不知道codeforces有很多題目
用hashmap會 timeout 用treemap反而可以AC
Regina avatar
By Regina
at 2021-01-30T09:23
這個去軟體版比較合適吧
Skylar Davis avatar
By Skylar Davis
at 2021-02-01T07:14
很簡單啊,因為這版叫tech job版,不是soft job 也不
是 student 版
Elvira avatar
By Elvira
at 2021-02-01T16:38
發錯位置當然要噓
Mia avatar
By Mia
at 2021-02-04T02:07
map: 紅黑樹(二元搜尋樹的一種特例
Erin avatar
By Erin
at 2021-02-06T10:42
unordered_map: hash,使用上不需要知道次序的建議選第二
Ina avatar
By Ina
at 2021-02-10T05:36
第一種比較快但佔空間
Regina avatar
By Regina
at 2021-02-13T15:39
說真的 講的太淺 大概是給高中生認識計概的程度
Dora avatar
By Dora
at 2021-02-15T18:04
衝流量啊嘻嘻
Queena avatar
By Queena
at 2021-02-18T22:15
板主不處理這種和本板無關的文,到時候就一堆商業心得
分享廣告文洗板
Dorothy avatar
By Dorothy
at 2021-02-20T08:38
你要創業那就po在創業板,po在這是在欠噓?
Hedwig avatar
By Hedwig
at 2021-02-24T10:34
難得看到教學型文章,給推
David avatar
By David
at 2021-03-01T02:18
這裡是半導體板
Valerie avatar
By Valerie
at 2021-03-03T18:42

尋找合作的前端工程師 React.js

Jacky avatar
By Jacky
at 2020-11-24T15:27
文章發表後即代表您已閱讀過置底的 板務規範 和 發文規範。 以下各項 ◎ 欄位為必填,請確實填寫; 各項 ⊙ 欄位為選填,請按需求填寫。 �� ...

Astrobotic和WiBotic合作在月球表面建立

Harry avatar
By Harry
at 2020-11-24T15:12
Astrobotic和WiBotic合作在月球表面建立無線充電系統 https://bit.ly/374CsCM 太空新創公司Astrobotic開發一種如鞋盒大小的月球探測機器人CubeRover,並導入無線 充電技術。Astrobotic將和無線充電新創公司WiBotic及博世(Bosch)合作,利用 ...

嫦娥五號今晨成功發射 將帶回2公斤月球土壤

Hardy avatar
By Hardy
at 2020-11-24T11:31
https://udn.com/news/story/7332/5038929 2020-11-24 08:35 聯合報 / 記者林則宏/即時報導 中國大陸24日4時30分,在海南文昌航天發射場成功發射探月工程「嫦娥五號探測器」。 按計劃,嫦娥五號探測器將於11月下旬登陸月球,降落在月球最大的月海風暴洋北 ...

台積聯發科大手筆 碩士年薪百萬起跳

Frederica avatar
By Frederica
at 2020-11-24T11:27
https://udn.com/news/story/7240/5038452 台積聯發科大手筆 碩士年薪百萬起跳 2020-11-24 02:22 經濟日報 / 記者李孟珊、鐘惠玲╱台北報導 半導體廠大規模徵才,並開出優厚的條件吸引人才加入。以台積電、聯發科為例,碩士畢 業生年薪至少百萬元起跳,並且會 ...

用陀當單位是不是工程師自以為的幽默

Carolina Franco avatar
By Carolina Franco
at 2020-11-24T11:14
最近仔細觀察一下發現好像工程師在討論代碼的時候 特別愛用陀這個單位,例如 我把這一整陀從這裡搬過來,問題就解決了 這一整陀要刪掉 聽的人也不會有特別的反應或是覺得好笑, 但說的人就是很喜歡陀來陀去 請問這單位是工程師特別愛用的幽默嗎? - ...