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

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

12 min · 5526 words

为什么主流语言的sort函数都选择了Timsort

1959年,Tony Hoare发明了快速排序。这个算法在教科书中被奉为圭臬,平均时间复杂度$O(n \log n)$,原地排序,缓存友好,几乎完美。然而,六十多年后的今天,当你调用Python的list.sort()、Java的Arrays.sort()或Rust的稳定排序时,底层运行的却是一个叫Timsort的算法。 ...

10 min · 4652 words