Luke a Pro

Luke Sun

Developer & Marketer

🇺🇦
EN||
常用演算法與工程選型

常用演算法與工程選型

一份面向真實軟體工程的演算法戰略指南,側重於演算法選型與工程權衡。

圖論:概覽

Published: Sun Feb 15 2026
圖不僅僅是點和線。它是世界的隱形結構,從社交關係到城市交通,它模擬著萬物之間的聯繫。

Bellman-Ford 演算法

Published: Sun Feb 15 2026
當 Dijkstra 在極速狂奔時,Bellman-Ford 選擇穩紮穩打,去應對那個可能存在「負能量」的真實世界。

A* 搜尋演算法

Published: Sun Feb 15 2026
現代遊戲導航與 GPS 的大腦。A* 演算法在已付出的代價與對未來的憧憬之間,尋找精密的平衡。

Floyd-Warshall 演算法

Published: Sun Feb 15 2026
不同於 Dijkstra 的極速狂奔,Floyd-Warshall 選擇坐鎮中央,利用「中間人」的力量,推演出了宇宙中所有節點之間的距離。

拓撲排序

Published: Sun Feb 15 2026
決定宇宙秩序的演算法。從「先穿襪子再穿鞋」到編譯大型軟體專案,它確保所有的先決條件都已被滿足。

並查集 (Union-Find)

Published: Sun Feb 15 2026
電腦科學中最高效的官僚機構。它管理著數百萬個元素,並且能瞬間告訴妳:「誰是妳的老大?」

搜尋與檢索:概覽

Published: Sun Feb 15 2026
搜尋是「不去看」的藝術。從倒排索引到向量空間,我們探索如何從數十億件物品中打撈出那枚落入大海的針。

倒排索引 (Inverted Index)

Published: Sun Feb 15 2026
Google 和 Elasticsearch 背後的引擎。透過翻轉文檔與詞彙之間的關係,它讓在數十億個網頁中尋找資訊變得瞬間可得。

Trie (前綴樹)

Published: Sun Feb 15 2026
Google 自動補完背後的靈魂。Trie 不僅僅是搜尋;它透過追蹤人類語言的共同路徑,預判了妳的未來。

KMP 演算法

Published: Sun Feb 15 2026
永不回頭的閱讀者。KMP 演算法利用對過去成功的記憶,跳過字串匹配中那些冗餘的失敗。

Boyer-Moore 演算法

Published: Sun Feb 15 2026
從末尾開始閱讀的天才。Boyer-Moore 是瀏覽器中快速「Ctrl+F」背後的秘密,它透過尋找「不匹配」的原因來跳過大段文本。

Rabin-Karp 演算法

Published: Sun Feb 15 2026
數位指紋演算法。Rabin-Karp 將字串轉化為數字,以數學的速度在海量文本中尋找模式。

Levenshtein 編輯距離

Published: Sun Feb 15 2026
人類錯誤的衡量標準。Levenshtein 距離透過計算將一個單詞轉化為另一個單詞所需的最小操作次數,量化了差異。

MinHash 與 LSH

Published: Sun Feb 15 2026
素描的藝術。MinHash 和 LSH 讓妳能夠在數十億件物品的汪洋大海中,不看細節就能瞬間捕捉到相似的物品。

向量檢索 (ANN)

Published: Sun Feb 15 2026
按意圖搜尋。向量檢索將概念轉化為空間座標,讓我們能夠捕捉到文字本身無法描述的深層相似性。

排序與 TopK:概覽

Published: Sun Feb 15 2026
排序不僅僅是按數字排列。它是從熵增中創造真相的行為,是所有搜尋與分析賴以生存的基礎。

快速排序 (QuickSort)

Published: Sun Feb 15 2026
演算法世界中的速度之魔。快速排序透過激進的分區策略,以令人驚嘆的速度在混沌中建立秩序。

歸併排序 (MergeSort)

Published: Sun Feb 15 2026
數位世界的偉大統一者。歸併排序透過耐心地將一個個小的確定性合併為宏大的真相,為混沌帶來了穩定性。

堆積排序 (HeapSort)

Published: Sun Feb 15 2026
生存競賽。堆積排序透過強制每個元素在層級結構中進行競爭,確保只有最強者才能登頂,從而在混沌中建立秩序。

快速選擇 (Quickselect)

Published: Sun Feb 15 2026
幸運的偵探。快速選擇演算法無需排序整個列表即可找到第 K 小的元素,透過「懶惰的智慧」節省了海量的計算資源。

外部排序 (External Sort)

Published: Sun Feb 15 2026
海量數據的建築師。外部排序允許我們利用「分批加工與歸併」的邏輯,對遠大於電腦記憶體的數據集建立秩序。

哈希與概率結構:概覽

Published: Mon Feb 16 2026
哈希是為無限的世界創造唯一指紋的藝術。概率型結構則告訴我們,有時候「基本確定」是海量數據下唯一的生存之道。

哈希表 (HashMap)

Published: Mon Feb 16 2026
光速查找。哈希表透過將鍵轉化為陣列索引,實現了近乎瞬時的檢索,創造了一個搜尋時間與數據規模無關的世界。

布隆篩選器 (Bloom Filter)

Published: Mon Feb 16 2026
毒舌門衛。布隆篩選器以極高的空間效率檢查元素是否存在。她的邏輯是:「也許在」可以接受,但「不在」必須是絕對真理。

HyperLogLog

Published: Mon Feb 16 2026
統計學先知。HyperLogLog 以不可思議的記憶體效率估算海量數據集中的唯一元素數量。她的邏輯基於「拋硬幣」的概率學原理。

HyperLogLog (HLL)

Published: Sun Feb 15 2026
一個數學奇蹟:僅需 1.5 KB 記憶體即可統計 10 億級數據的去重數量,準確率高達 98%。

局部敏感哈希 (LSH)

Published: Mon Feb 16 2026
物以類聚。與普通哈希不同,LSH 確保相似的項更有可能發生碰撞。她是圖片搜尋和推薦系統背後的隱形引擎。

緩存與置換:概覽

Published: Tue Feb 17 2026
緩存是遺忘的藝術。因為高速記憶體既昂貴又稀缺,我們必須時刻決定:把什麼留在身邊,把什麼丟進風裡。

Paxos 演算法

Published: Sun Feb 15 2026
分散式共識的理論基石。複雜、嚴謹,是所有現代一致性協定的數學鼻祖。

區間樹 (Interval Tree)

Published: Wed Feb 18 2026
日程調度員。區間樹透過組織範圍為時間帶來了秩序,讓我們能瞬間檢測重疊事件並管理衝突。

四叉樹 (Quadtree)

Published: Wed Feb 18 2026
變焦鏡頭。四叉樹透過遞迴地將密集區域劃分為四個更小的象限,並忽略空白區域,從而高效地儲存 2D 空間。

K-D 樹 (K-D Tree)

Published: Wed Feb 18 2026
維度切割者。K-D 樹透過交替軸來組織多維數據,讓我們能在 N 維空間中高效地執行「最近鄰」搜尋。

R 樹 (R-Tree)

Published: Wed Feb 18 2026
裝箱工。R 樹透過將複雜形狀分組到重疊的邊界框中來組織她們,她是幾乎所有現代空間資料庫背後的引擎。

數學與數論:概覽

Published: Thu Feb 19 2026
數學是現實世界的原始碼。在本章中,我們將探索那些驅動現代加密技術和數位邏輯的古老真理。

素數與篩法

Published: Thu Feb 19 2026
數論的原子。素數是所有整數唯一的構建基石,她們是現代加密技術的「生物 DNA」。

二叉搜尋樹 (BST)

Published: Fri Feb 20 2026
雙刃劍。BST 承諾透過組織數據實現閃電般的搜尋,但它有一個致命缺陷:如果沒有平衡,它會退化成一條緩慢的直線。

紅黑樹 (Red-Black Tree)

Published: Fri Feb 20 2026
執法者。紅黑樹利用一套嚴格的規則和顏色系統來確保樹保持平衡,她是現代軟體引擎背後的動力。

B 樹 (B-Tree)

Published: Fri Feb 20 2026
磁碟巨人。B 樹專為讀取緩慢的儲存系統設計。透過長得「矮胖」,它最小化了磁碟尋道次數,驅動著地球上幾乎所有的資料庫。

線段樹 (Segment Tree)

Published: Fri Feb 20 2026
區間的計算器。線段樹允許我們在對數時間內對動態陣列執行區間查詢(求和、最小值、最大值),解決了「可變區間分析」的問題。

字串演算法:概覽

Published: Sat Feb 21 2026
從搜尋引擎到 DNA 測序,字串演算法解決了在字元海洋中尋找模式的問題。本章將探索文本匹配與壓縮的藝術。

Trie 樹 (前綴樹)

Published: Sat Feb 21 2026
文本的先知。Trie 樹透過前綴儲存字串,讓我們能在用戶輸入的同時瞬間預測並補全單詞。

哈夫曼編碼 (Huffman Coding)

Published: Sat Feb 21 2026
簡潔之樹。哈夫曼編碼透過給高頻字元分配較短的二進位代碼,給低頻字元分配較長的代碼來壓縮數據,證明了效率源於不平等。

策略決策:概覽

Published: Sun Feb 22 2026
選擇的藝術。在全書的最後一章,我們超越了數據結構,開始探索解決複雜問題的核心策略:如何在記憶、貪婪與探索之間取得平衡。

動態規劃 (DP)

Published: Sun Feb 22 2026
智慧的長者。動態規劃透過將複雜的優化問題拆解為重疊的子問題並記住答案,確保不浪費任何重複的勞動。

回溯演算法 (Backtracking)

Published: Sun Feb 22 2026
勇敢的冒險家。回溯演算法透過探索解決問題的所有可能路徑,並在遇到死胡同時有勇氣掉頭嘗試另一條路線。