2
欠落要素の問題に対する時間と空間のトレードオフ
これはよく知られた問題です。 正の整数の配列が与えられた場合、配列にない最小の正の整数を出力します。A[1…n]A[1…n]A[1\dots n] この問題は、空間と時間で解決できます。配列を読み取り、発生したかどうかを空間で追跡し、最小要素をスキャンします。O(n)O(n)O(n)O(n)O(n)O(n)1,2,…,n+11,2,…,n+11,2,\dots,n+1 スペースを時間と交換できることに気付きました。あなたが持っている場合はのみメモリを、あなたはそれを行うことができますラウンドと時間を得る。特別な場合には、明らかに一定空間の二次時間アルゴリズムがあります。O(nk)O(nk)O(\frac{n}{k})kkkO(kn)O(kn)O(k n) 私の質問は: これは最適なトレードオフですか、つまりですか?一般に、そのようなタイプの境界をどのように証明しますか?time⋅space=Ω(n2)time⋅space=Ω(n2)\operatorname{time} \cdot \operatorname{space} = \Omega(n^2) O(1)の配列への境界演算とランダムアクセスを備えたRAMモデルを想定します。 この問題のインスピレーション:ワンテープモデルのパリンドロームの時間と空間のトレードオフ(たとえば、こちらを参照)。