最適な連続アーカイブのソート

1つのアイデアの実施形態は、アーカイブのサイズが最小になるようにファイルを配置することです。

プログラムは、ペアのファイルの圧縮率をチェックし、アーカイバーによる圧縮のためにリストをソートします。



sourceforge.net/projects/saro-vks

誰かがそれを必要とするならば、それを取りなさい。



一般に、この考え方は新しいものではありません。たとえば、5番目のバージョンのWinRARは重複を見つけて、リンクとしてアーカイブに保存できます。

ここでは、同様の原則-ファイルの「類似性」は圧縮チェックによって決定されます。



ファイルのペアのサイズがアーカイブの「辞書」のサイズよりも大きい場合、大きなファイルで最良の結果が得られます。

たとえば、工場出荷時のソートと比較して、それぞれ約50 MBの1.5 GBの実行可能ファイルは709 MBから696 MBに縮小し、25 MBのMIDIファイルのアーカイブはそれぞれ30..300 kBから5.55 MBから5.51 MBに減少しました。



明確にするために、アルゴリズムに応じたいくつかの写真。



最初に、ペアの圧縮率がチェックされます-N * Nファイルのマトリックスが塗りつぶされます(ひし形で-リストから最後のファイルを削除すると、最初のファイルについてすでに取得された結果が保存されます)。







次に、シーケンスは「ウィンドウ」でソートされます。ウィンドウ内で、ファイルの可能なすべての組み合わせが重複なしで検索され(階乗N)、最小サイズの組み合わせが残ります。

ウィンドウはリスト全体で徐々に移動しますが、サイズは減少し続けます。

小さいサイズがどこにも見つからない場合、ソートは完了しています。







ps気の毒なバージョンをおaびしますが、「dopilivanie」は遅く、最終バージョンがいつになるか-不明ですが、それを使用することはすでに可能です。

大きなマイナスがありますが、ファイルペアを含むアーカイブのサイズは4 GBに制限されています(非常に大きなファイルは不要で、64ビットサイズの処理には時間がかかりました)。

何かが欠けている場合-書き込み、可能であればそれを行います。



All Articles