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?
これはグーグルのインタビューの質問です. 誰かが答えを見つけるのを手伝ってくれますか?
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?
これはグーグルのインタビューの質問です. 誰かが答えを見つけるのを手伝ってくれますか?
1000 個のクエリをメモリに読み込み、 quicksortを使用して並べ替え、ファイルに書き込みます。最終的に、そのようなファイルは 1000 個になります。
次に、ご想像のとおり、 mergesortを使用してファイルをマージします。
それが私がそれをする方法です。決して最適なソリューションではありません。
私は怠け者です: すべてのクエリ (それぞれ 1,000 件) を読み取り、それらをデータベースにダンプしてからSELECT ORDER BY anything
. もしそれが Google に求められているのなら、彼らはとにかくデータベースを持っているでしょう...
それを実現するために、外部マージソートを使用できます。
メモリを増やしてください。クエリはそれほど大きくありません。既成概念にとらわれずに考えることができるかどうかをテストする質問です。