算法实现:如何从100亿个数中找到最大的10000个数

一看这个这个题目:也许你就蒙了,这么多的数排序,直接读入内存,内存是装不下的,一个解决办法:用堆排序,先取10000个数排序,排序的时间复杂度,nlogn=10000*log1000,设它为T0,那么后面的数据依次取一个和这个堆比较,堆里面永远保留最大的10000个数据,最后就输出这10000w个数据,不知道还有什么好的办法吗?

展开阅读全文

没有更多推荐了,返回首页