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?
这是一个谷歌面试问题。有人能帮我找到答案吗?
答案 0 :(得分:4)
您在内存中加载了1000个查询,并使用快速排序对它们进行排序,并将它们写入文件。最后你将拥有1000个这样的文件。
然后你继续合并文件,你猜对了, mergesort 。
我就是这样做的。绝不是最佳解决方案。
答案 1 :(得分:1)
External merge sort来实现这一目标。
答案 2 :(得分:1)
获得更多记忆。查询不是那么大。这是一个测试你是否可以跳出框思考的问题。
答案 3 :(得分:1)
我很懒:读取所有查询(每个1000个),将它们转储到数据库中,然后SELECT ORDER BY anything
。如果是谷歌要求的话,他们无论如何都会拥有数据库...