問題の説明
条件:限られたディスク容量、異なるプログラムサイズ。
ストアドプロシージャは、限られたディスクで可能な限り、可能な限り小さくプログラムを選択する必要があります。
アルゴリズムの説明
貪欲アルゴリズム:常にオプションプログラムからディスクに最小のテストを選択します。
1.並べ替え:昇順でのサイズによってプログラム。
2.追加サイクル:iはi番目の配列(すなわち、[i]は、1 <= I <= N)ステージング番号(和、初期値は0)に、及び決定和を満たすかどうかにソート後、開始から1 =少ないディスクスペースよりも、回数(カウント++)、またはループのうち、
最適なソリューションを導入することができる選択貪欲なことを証明するために必要なこと:
1.表示の選択は、貪欲(最小プログラム)を開始することができます。プログラムは、溶液が空でないことを最小値から開始したときに選択プログラムは、最小を選択することができます。仮定する溶液は、任意の数(カウント)と同じ手順に、最小の交換手順を用いて、得られた配列から選択され、空ではありません。
2.最適下部のプロパティを証明した:溶液の後に問題の準最適な解決策は、空ではない、最初のプログラムは、前提の最小値を選択することができ、プログラムの最小量で得られた最初の選択された最適解を除去するために想定されますCOUNT_0件を元の問題count_1-1最適なソリューションよりも大きく、あなたの選択COUNT_2溶液に、最小のプログラムは、カウント1より大きい生産、この時間カウント1は真ではありません。これは、最適なソリューションではありません。したがって問題は、構造次善を有しています。
時間と空間分析の複雑
時間複雑:プログラムクイックドレーン(O(nlogn))および環状(O(n))が、時間複雑度は、O(nlogn)であるので、
空間複雑:各アプリケーションのストレージサイズのための新しいプログラムの一次元アレイ([N])、時間複雑度は、O(N)であるので。
経験
会場の手配への参照は、一般的に上記の証明を書かれた証明したが、私は貪欲アルゴリズムの正しさを証明したものの疑問がたくさんあります。