你每天都在用這 9 個演算法,卻沒察覺
從 Google 搜尋到手機通話、從社群動態到衛星定位——背後都躺著同一批「主宰世界」的演算法
按下搜尋的那一秒,一整排演算法就開工了
你打開手機,滑一下社群動態,順手用 Google 查了間餐廳,開導航開過去——這短短幾分鐘裡,你其實已經親手驅動了好幾個世界級的演算法,只是它們藏得太好,你完全沒感覺。
這一篇 ByteByteGo 圖解,挑出了日常生活中最常被用到的 9 個演算法。它們不是實驗室裡的理論玩具,而是撐起你每天在用的網路搜尋、社群網站、WiFi、手機、甚至衛星的隱形骨架。
你看得到的是 App 的介面、地圖上的那條藍線、通話裡對方清楚的聲音——這些是浮在水面上的冰山一角。水面下真正在做苦工的,是一層又一層的演算法:幫你排序、找最短路、加密、壓縮、辨識。這一章,就是把水面下那塊冰山撈出來給你看。
原文對照:它們到底用在哪
與其聽轉述,不如直接看 ByteByteGo 原文怎麼說。原文很短、很直白,把「這些演算法用在哪」一句話講完:
下面這張圖,畫的是我們日常生活中最常被用到的那些演算法。
它們被用在:網路搜尋引擎、社群網站、WiFi、手機,甚至衛星裡。
換你了:還有哪些常用的演算法是我們漏掉的?(原文以這句開放式提問收尾,邀讀者補充。)
原文本身只列出這 9 個演算法的名字,並沒有逐一解釋每個演算法是什麼。所以從下個模組開始,每個演算法後面那句「它是什麼、典型用在哪」,是這堂課為你補上的業界通識背景,方便零基礎理解——不是 ByteByteGo 原文的原話,請放心當成一般科普來讀。
為什麼「演算法無所不在」?
先把名詞講清楚。演算法(algorithm)說穿了就是「解決某個問題的一套明確步驟」——像食譜,照著做就能從原料得到成品。電腦每天要處理的問題(找東西、排順序、傳資料、保護隱私)其實反覆出現,於是這些「經典解法」被打磨到極致,變成幾乎所有系統的共用零件。
原文列出的五個場景,正好能看出這種「共用零件」的威力——同一個演算法,換個場景就換了張臉:
要在數十億網頁裡挑出最相關、最重要的幾筆——靠的是排序與連結分析把好結果頂到最前面。
「你可能認識的人」「熱門推薦」背後,是把人與人的關係當成一張大網來分析。
資料要壓縮得夠小才傳得快、又要加密才不被偷看——壓縮與加密演算法時時刻刻在跑。
從一堆節點裡算出最短路徑,才知道地圖該怎麼帶你走——這是最短路徑演算法的主場。
「演算法無所不在」不是誇飾。真正的原因是:不同產品表面差很多,底層要解的問題卻高度相似——都逃不開「排序、找路、壓縮、加密、辨識、算重要性」這幾類。把這幾類的經典解法學會,你就有了一副能看穿幾乎任何系統的 X 光眼鏡。下個模組,我們一個一個把它們拆開來看。
九大演算法,逐一認識
原文列了 9 個名字,這裡替每一個補上一句白話:它是什麼、典型用在哪
先把清單擺出來
ByteByteGo 這篇的核心,就是下面這份 9 個演算法的清單。原文只給了名字,這一節逐個補上業界通識的一句白話說明。看的時候不用背,只要抓住每個演算法「在解哪一類問題」就夠了。
1. Sorting 2. Dijkstra’s Algorithm 3. Transformers 4. Link Analysis 5. RSA Algorithm 6. Integer Factorization 7. Convolutional Neural Networks 8. Huffman Coding 9. Secure Hash Algorithm
第 1–5 個:排序、找路、理解語言、算重要性、加密
把一堆資料照大小或某種規則排出順序。最基礎、最無所不在的一類——搜尋結果排名、電商依價格排序、資料庫查詢加速,背後幾乎都先排序過。
在一張有距離的圖上,算出兩點之間的最短路徑。典型用途就是地圖導航:從 A 到 B 該怎麼走最快。
一種擅長理解與生成語言(序列資料)的神經網路架構,靠「注意力機制」抓住上下文關係。是當今大型語言模型(如 ChatGPT)的核心。
把「誰連到誰」當成線索,算出每個節點的重要性。經典應用是搜尋引擎的網頁排名(被越多重要網頁連結的頁面越重要),以及社群網路分析。
一種非對稱加密演算法,用一對「公鑰/私鑰」讓陌生的雙方也能安全通訊。典型用在網站的安全連線(HTTPS)與數位簽章。
第 6–9 個:質因數分解、影像辨識、壓縮、雜湊
把一個大整數拆解回它的質因數。有趣的是:這件事「極難算」正是 RSA 加密安全的基石——它的難度撐起了加密的可靠性。
一種特別擅長處理影像的神經網路,會一層層抓出邊緣、形狀、物件等特徵。典型用在影像辨識:人臉解鎖、照片自動分類、醫學影像判讀。
一種無損壓縮技巧:越常出現的內容用越短的編碼表示,整體檔案就變小。典型用在檔案壓縮(如 ZIP)與影音格式中。
把任意長度的資料,轉成一段固定長度、幾乎不可逆的「雜湊指紋」。典型用在驗證資料有沒有被竄改、安全存放密碼、以及區塊鏈。
這 9 個其實落在幾個大家族:整理資料(排序)、在圖上找路/算重要性(Dijkstra、連結分析)、資訊安全(RSA、質因數分解、SHA)、資料變小(Huffman)、機器學習(Transformers、CNN)。認清家族,比記名字更有用。
動手配對:這個演算法最常用在哪?
把下面六張演算法卡片,拖到它最典型的應用場景。拖完按「對答案」。
配對的訣竅不是硬記,而是回想每個演算法的「本業」:要保護資料就想到加密(RSA)、要找最快的路就想到最短路徑(Dijkstra)、要看懂圖片就想到 CNN、要把檔案變小就想到 Huffman、要衡量誰重要就想到連結分析、要處理語言就想到 Transformers。
小試身手
看完九大演算法,來三題檢查一下:
回到開頭那個畫面——現在你再滑一次手機,就能猜到水面下是誰在做工:搜尋靠排序+連結分析,導航靠 Dijkstra,安全連線靠 RSA+SHA,照片辨識靠 CNN,檔案傳輸靠 Huffman 壓縮,而聊天機器人靠 Transformers。原文最後留了一個開放式問題邀你思考:還有哪些常用的演算法被漏掉了?這正是把這份清單變成你自己的清單的起點。