xkcd

英文频道 中文频道

XKCD中文站,一个关于浪漫、隐喻、数字、以及语言的线上漫画。

线性排序

线性排序
最好情况是 O(n),最坏的情况是有人检查为什么。 译注: 程序的复杂度有最好/坏情况, 都是写成 O(一个关于 n 的表达式) 表示运行性能, 表达式越小越好。 下文的 n 是列表长度. 该函数首先使用归并排序(时间复杂度为O(n log n))对列表进行排序,然后根据列表长度 * 1e6 - 已用时长来计算剩下需要睡眠的时间,以使整个过程在 n * 1e6 = O(n) 时间内完成。有人检查这个线性复杂度时会发现这个线性“优化”的来源。 还有个隐藏笑点:基于比较的排序复杂度最好就是 O(n log n),不可能比这更好。

英文链接 原文链接