排序100万个查询

时间:2012-08-20 11:31:22

标签: algorithm

I have 1 million queries on disk to sort, my local memory/cache can store
up to 1 thousand queries, how can I perform sort?

这是一个谷歌面试问题。有人能帮我找到答案吗?

4 个答案:

答案 0 :(得分:4)

您在内存中加载了1000个查询,并使用快速排序对它们进行排序,并将它们写入文件。最后你将拥有1000个这样的文件。

然后你继续合并文件,你猜对了, mergesort

我就是这样做的。绝不是最佳解决方案。

答案 1 :(得分:1)

可以使用

External merge sort来实现这一目标。

答案 2 :(得分:1)

获得更多记忆。查询不是那么大。这是一个测试你是否可以跳出框思考的问题。

答案 3 :(得分:1)

我很懒:读取所有查询(每个1000个),将它们转储到数据库中,然后SELECT ORDER BY anything。如果是谷歌要求的话,他们无论如何都会拥有数据库...