有10亿个浮点数,从中找出1万个最大的数。
请问:1.有10亿个浮点数,从中找出1万个最大的数。写一个高性能的算法
能说出算法和数据结构就可以了
[解决办法]
可以用分段的方法,在数据结构版看mathe给的(可能题目不太一样),大致是这样的:
开一个100万的数组,
1,读入100万的数据
2,找到最大的1万个数据,有线性算法的
3,现在数组里只有1万个数据了,取最小的那个数据 TempMin
4,再从源数据中读数据,只保存比TempMin大的数据,其他数据丢弃
5,当数据达到100万或数据读完时,用第二步的方法找到最大的1万个,如果还有数据转3,如数据读完则结束