在计算机行业中有一个经典的面试题,“假如一个文件内容包含了所有学生的成绩,我们现在找到前十名的学生,但是我们的计算机内存只有2个G,但是文件有200G,请问有什么办法解决?”
这个提题主要考的是如何利用有限的内存资源来解决TopN的问题,需要分批读取文件内容并在内存中维护一个“最大堆”的树即可。
为啥呢?很简单,因为一次性全部把文件读取到内存中,操作系统会触发OOM(out of Memory)而Kill Process[作揖][作揖][作揖]
也就是即使是内存不足,也是有办法解决问题的,很可惜啊,他内存不够且算法也不精湛[摊手][摊手][摊手][摊手]
蔚来汽车[超话]新能源大牛说新能源汽车