10亿个数,从中快速找出最大的1万个数字?

来源:百度知道 编辑:UC知道 时间:2024/05/11 05:49:35
思路????

(1)读一次所有数据,得出最大和最小。
(2)用最大和最小,分100个区间
dx = (x_max - x_min) / 100
每区间范围: dx * (i-1) 到 dx * i,i=1 到 100.
(3) 读一次所有数据,统计落入各区间的数据个数。
(4) 从最大区间起,把数据个数依次加起来,找到 正好大于1万个数的区间。
(5) 如果这个区间的数很多,可以再细分100个区间查找,如数据不太多,则 读一次所有数据,对大小范围在此区间的数排队,找出需要的数。
(6)读一次所有数据,把大于此区间上限的数取出来。
5,6 步找到的数据 合在一起 是 1 万个数。

排序然后取出排在最前面或最后面的1万个数