谈从10亿个数中找出前10万个最大的
谈从10亿个数中找出前10万个最大的期的实验显示10亿个浮点数大概占据3G左右的空间,因此全部一次性读入内存目前在个人PC上是不太现实的。本次讨论不考虑内存等等,只考虑算法。如果一次性比较排序,然后输出前面最大的10w个,那么众所周知,算法的时间复杂度不下于O(N lgN),此处的N为数的个数(10亿)。如果用堆排序,由于堆排序像合并排序而不像插入排序,堆排序的运行时间为O(...