最短路径算法为何如此重要从Dijkstra到Floyd的四种实现方式与LeetCode完整通关指南

1956年的某个早晨,荷兰计算机科学家艾兹赫尔·戴克斯特拉(Edsger W. Dijkstra)在阿姆斯特丹的一家咖啡馆里,只用20分钟就在脑海中设计出了最短路径算法。当时他正在和未婚妻逛街,甚至没有用纸笔——这个"20分钟的发明"后来成为计算机科学史上最著名的算法之一,被广泛应用于GPS导航、网络路由、社交网络分析等无数领域。 ...

14 min · 6744 words

拓扑排序如何让任务有条不紊地执行:从Kahn算法到DFS的完整LeetCode通关指南

在大型软件项目的构建过程中,模块之间存在复杂的依赖关系:A模块依赖B模块,B模块又依赖C模块。构建系统必须找到一个合法的编译顺序,确保每个模块在其依赖项编译完成后才开始编译。这个问题的数学本质就是拓扑排序——给定一个有向无环图(DAG),找到一个线性序列,使得对于每条有向边$u \to v$,顶点$u$都出现在顶点$v$之前。 ...

9 min · 4456 words

HNSW:为什么这个图算法正在统治AI时代的向量检索

2016年3月,Yury Malkov和Dmitry Yashunin在arXiv上发表了一篇题为《Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs》的论文。这篇论文提出的HNSW算法,在随后的几年里成为了几乎所有主流向量数据库的核心索引——Elasticsearch、Milvus、Pinecone、Weaviate、Qdrant无一例外。 ...

13 min · 6304 words