排序算法为何如此重要从快速排序到TimSort的八十年演进与LeetCode完整通关指南

1961年,英国计算机科学家Tony Hoare在为机器翻译项目开发字典排序功能时,发明了一种在当时看来极其反直觉的算法:随机选择一个元素作为基准,将数组分成两部分递归排序。这个算法就是后来统治计算机排序领域半个多世纪的快速排序。 ...

12 min · 5526 words

堆与优先队列为什么能在对数时间内找到第K大元素:从完全二叉树到堆排序的完整技术解析

1964年,J.W.J. Williams在发表堆排序算法时,顺带发明了一种被称为"堆"的数据结构。他可能没想到,这个最初为排序服务的数据结构,会在六十年后成为每一位程序员面试的必考内容。从操作系统进程调度到网络路由的最短路径计算,从数据库查询优化到实时数据流的中位数统计,堆的身影无处不在。 ...

10 min · 4559 words