Luke a Pro

Luke Sun

Developer & Marketer

🇺🇦
EN||
常用算法与工程选型

常用算法与工程选型

一份面向真实软件工程的算法战略指南,侧重于算法选型与工程权衡。

图论:概览

Published: Sun Feb 15 2026
图不仅仅是点和线。它是世界的隐形结构,从社交关系到城市交通,它模拟着万物之间的联系。

Bellman-Ford 算法

Published: Sun Feb 15 2026
当 Dijkstra 在极速狂奔时,Bellman-Ford 选择稳扎稳打,去应对那个可能存在“负能量”的真实世界。

Floyd-Warshall 算法

Published: Sun Feb 15 2026
不同于 Dijkstra 的极速狂奔,Floyd-Warshall 选择坐镇中央,利用“中间人”的力量,推演出了宇宙中所有节点之间的距离。

并查集 (Union-Find)

Published: Sun Feb 15 2026
计算机科学中最高效的官僚机构。它管理着数百万个元素,并且能瞬间告诉你:“谁是你的老大?”

拓扑排序

Published: Sun Feb 15 2026
决定宇宙秩序的算法。从“先穿袜子再穿鞋”到编译大型软件项目,它确保所有的先决条件都已被满足。

A* 搜索算法

Published: Sun Feb 15 2026
现代游戏导航与 GPS 的大脑。A* 算法在已付出的代价与对未来的憧憬之间,寻找精密的平衡。

Dijkstra 最短路径算法

Published: Sun Feb 15 2026
诞生于咖啡馆露台上的 20 分钟灵感,在没有纸笔的困境下,迪杰斯特拉创造了寻找最短路径的金科玉律。

搜索与检索:概览

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
算法世界中的速度之魔。快速排序通过激进的分区策略,以令人惊叹的速度在混沌中建立秩序。

堆排序 (HeapSort)

Published: Sun Feb 15 2026
生存竞赛。堆排序通过强制每个元素在层级结构中进行竞争,确保只有最强者才能登顶,从而在混沌中建立秩序。

归并排序 (MergeSort)

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
分布式共识的理论基石。复杂、严谨,是所有现代一致性协议的数学鼻祖。

四叉树 (Quadtree)

Published: Wed Feb 18 2026
变焦镜头。四叉树通过递归地将密集区域划分为四个更小的象限,并忽略空白区域,从而高效地存储 2D 空间。

区间树 (Interval Tree)

Published: Wed Feb 18 2026
日程调度员。区间树通过组织范围为时间带来了秩序,让我们能瞬间检测重叠事件并管理冲突。

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
勇敢的冒险家。回溯算法通过探索解决问题的所有可能路径,并在遇到死胡同时有勇气掉头尝试另一条路线。