今天遇到一个有意思的问题,有关大数据的算法
问题背景:有一个非常大的二维数组N,尽可能地找出其中最大的n个数,n为变量但远远小于N的数据规模。注意:这个数组非常之大,以至于无法在合理的时间范围内对其进行遍历。暂且不讨论存储问题,假设数组已经完全存储在内存中了。
根据问题背景,允许运行结果不是最优解,但要在程序的运行时间合理的范围内尽可能接近最优解。
例如:要求找出前10个最大的数,最后可以只找到相对比较大的10个数(当然越接近正确答案越好)。
也允许这样的算法:即便给的时间无限长,最终也不能找到最优解,但可以快速地给出次优解。
问题是我根据实际情况抽象出来,自己描述的,可能有所偏差,如果对题目本身的叙述有问题,请继续提问。
补充1:这个二维数组描述的是一个地区的地形,每个点的数值都是表示海拔高度,所以变化相对平缓。
--------------------
有没有人有点想法?
[ 本帖最后由 蚕头燕尾 于 2015-6-19 20:05 编辑 ]