排序是编程课的必修课,但Selection Sort这门"老古董"至今还在面试里阴魂不散。它诞生于计算机科学的蛮荒年代,核心逻辑简单到像挑苹果——每次从筐里摸个最小的,依次摆好。

时间复杂度O(n²)意味着数据量翻倍,耗时翻四倍。这种"暴力美学"在大数据时代早已力不从心,但教培机构和面试官依然对它情有独钟。原因很简单:代码短、逻辑清、适合考察基本功。

一位参与过谷歌校招的工程师透露,「候选人能写出Selection Sort不稀奇,但能讲清楚为什么它比Bubble Sort更省交换次数的,十不存一」。多数人背得出代码,却说不清背后的权衡。

实际生产中,Java的Arrays.sort()底层用的是Dual-Pivot Quicksort,复杂度压到O(n log n)。Selection Sort唯一的生存空间,只剩嵌入式设备和极端内存受限场景——以及那些让人窒息的笔试考场。

最近一份Stack Overflow调查显示,仍有34%的初学者把它当作首选排序方案。不是因为它好用,而是因为教材翻到新的一页之前,他们不知道还有更好的选择。