0
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

4 回答 4

4

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

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

我就是这样做的。绝不是最优解。

于 2012-08-20T11:33:57.750 回答
1

可以使用外部合并排序来实现这一点。

于 2012-08-20T11:34:02.740 回答
1

获取更多内存。查询不是那么大。这是一个考验你是否能跳出框框思考的问题。

于 2012-08-20T11:35:32.473 回答
1

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

于 2012-08-20T11:41:26.487 回答