web-dev-qa-db-ja.com

これはどういう意味ですか:O(n)ステップとO(1)スペース?

O(1)スペースとはどういう意味ですか?O(n)ステップはアルゴリズム/プログラムが行う計算の大きさのオーダーに似ていることを理解していますが、 O(n)スペースが何であるかわからない。

26
Devoted

O(1)スペースは、アルゴリズムに必要なメモリが一定であること、つまり入力のサイズに依存しないことを意味します。

O(n)スペースは、アルゴリズムに必要なメモリが(最悪の場合)入力のサイズと同じ桁数であることを意味します。

編集:2つの例を追加します:

  • バブルソートにはO(1)スペースが必要です。
  • マージソートにはO(n)スペースが必要です。
43
3lectrologos

基本的に「O(n)ステップとO(1)スペース」」とは、アルゴリズムが実行するステップ数がアイテム数に比例して(O(n))スケーリングされることを意味しますが、その量は必要なメモリの量は一定です。

2
mbarnett