2 つの utf-8 テキスト ファイルが必要です。ファイルの各行には文字列があり、Ü、Ö、ą、ę などの言語固有の文字を含めることができます。文字列はランダムな順序と長さで、繰り返すことができます。最初のファイルには、少なくとも 3 mln の行があります (1 mld の行を簡単に超える可能性があります)。2 番目のファイルは小さく、通常は約 40 万行になります (ただし、はるかに大きくなる可能性があります)。
ファイル 1 のエントリを含む新しいファイルを作成し、ファイル 2 に表示されるエントリを削除し、すべての繰り返しエントリを作成する必要があります。
現在、両方のファイルを並べ替えて、繰り返しエントリを削除しています。次に、2番目のファイルに表示されるかどうかを確認しながら、それらを新しいファイルに書き込みます。
これを行うより速い方法はありますか?
編集
メモリが問題です。この文字列をメモリにコピーせず、ファイルを操作します。私の友人は、メモリにコピーするのではなく、ファイル ストリームで作業することを提案しました。この後、実行時間は大幅に短縮されます。
コンピュータの管理者は、データベースをインストールしたくありません。
ループで次のようにコードルーンをソートした後:
if stringFromFile1 < stringFromFile2 then writeToFile3 and get next stringFromFile1
else if stringFromFile1 == stringFromFile2 then dropStringFromFile1 and get next stringFromFile1
else if stringFromFile1 > stringFromFile2 then get next stringFromFile2 and go to line 1