Gayle Laakmanの本、Cracking the Technical Interviewの質問11.5で、
「1行に1つの文字列を持つ20GBのファイルがあると想像してください。ファイルを並べ替える方法を説明してください」
私の最初の反応は、まさに彼女が提案した解決策でした。Xmbのデータを読み込み、並べ替えてからディスクに書き込むことで、ファイルを小さなチャンク(メガバイト)に分割しました。そして最後に、ファイルをマージします。
最終的なマージではメインメモリ内のすべてのデータを保持する必要があるため、このアプローチを採用しないことにしました。これは不可能であると想定しています。その場合、このソリューションはどの程度正確に当てはまりますか?
私の他のアプローチは、ほぼ無制限のディスク容量がある、または少なくともすでに持っているデータの2倍を保持するのに十分であるという仮定に基づいています。X mbのデータを読み込んで、それらのハッシュキーを生成できます。各キーはファイルの行に対応しています。すべての値がハッシュされるまで、これを続けます。次に、そのファイルの値を元のファイルに書き込む必要があります。
どう考えているか教えてください。