くうかんふくざつどふかさかいせき

603 ワード

時間の複雑さはプログラムの具体的な時間を計算するために使用されるものではない以上、空間の複雑さもプログラムが実際に占有する空間を計算するために使用されるものではない.空間複雑度は,実行中にアルゴリズムが一時的に記憶空間サイズを占有するメトリックであり,S(n)で定義されるトレンドを同様に反映している.
1.空間複雑度O(1)
int i = 1;
int j = 2;
++i;
j++;
int m = i + j;

アルゴリズム実行に必要な一時空間は、ある変数nの大きさに応じて変化しない.すなわち、このアルゴリズム空間の複雑度は定数であり、コード中のi,j,mに割り当てられた空間は、処理データ量に応じて変化しないため、その空間複雑度S(n)=O(1)である.
2.空間複雑度O(n)
int[] m = new int[n]
for(i=1; i<=n; ++i)
{
   j = i;
   j++;
}

このコードのうち、第1行newは1つの配列が出てきて、このデータの占有する大きさはnで、このコードの2-6行は、ループがあるが、新しい空間を再分配していないので、このコードの空間複雑度は主に第1行、すなわちS(n)=O(n)を見ることができる.