Java では、プログラムのある時点で、int[]
メモリ内で数ギガバイトの配列を処理する必要があります。それらはソートされ、ファイル行を表す自然数( 1, 2, 3, 4
、...、最大) のみを含みます。n
Numbern
はファイル内の行数であり、最大にすることができます100000
。したがって、配列は、ファイル内のすべての行のセットの単なるサブセットです。計算できるように、そのようなサブセットは何百万もあり、それらのいくつかを持つことは非常に重要です。これらのサブセット内のデータ分布 (ここでは配列と呼びましょう) に関しては、完全にランダムです。つまり、長い配列は50000
数字で発生し、小さな配列は数字のみで発生し1500
ます。また、各配列には、[3, 10, 11, 12, 13, 14, 15, 135, 136, ...]
またはのような予測不可能なシーケンスが含まれています[2, 3, 746, 7889, 7892, 80000,...]
。
圧縮/解凍する配列がたくさんあるので、実行ごとに費やされる時間の点で最速のソリューションを見つけたいと思います。したがって、オーバーヘッドは可能な限り最小限に抑える必要があります。
どのライブラリをお勧めしますか?