【发布时间】:2011-02-02 18:49:50
【问题描述】:
我的一个朋友被问到一个问题
从一亿个数字中检索最大的前 100 个数字
在最近的一次工作面试中。你有什么想法想出一个有效的方法来解决它吗?
【问题讨论】:
-
有趣。我今天在一次采访中被问到一个非常相似的问题(措辞非常不同,但归结为一个类似的问题)。希望你昨天能发布这个! :p
-
相关问题:“数百万个 3D 点:如何找到最接近给定点的 10 个?” stackoverflow.com/questions/2486093/… 相同的答案适用于堆、部分排序,甚至线性搜索。这个问题可能会受到 IO 的限制,因此任何算法都可以。
-
kd-tree 是否有助于一维中最近的邻居(如本例)?
-
这样的问题几乎需要您询问更多信息。如果他们回答你可以对所有不清楚的事情做出你自己的假设,你可以假设数据是在一个排序列表中提供给你的,你可以得到前 100 个数字 :)
-
@eSKay:看代码stackoverflow.com/questions/2486093/…有基于堆、部分排序、线性搜索的C++程序,几乎可以直接使用(只需使用你的阅读和比较函数,而不是@987654323 @和
less_distance)
标签: algorithm