n / k回表示されるサイズnのソートされた配列にすべての整数を見つけますか?

cs.stackexchange https://cs.stackexchange.com/questions/127956

質問

この問題に対する解決策を見つけようとします。 よりも (Klogn)時間の順に表示されるサイズnのソートされた配列のすべての整数をどのように見つけますか?

私は O(Klogn)溶液が提供された。

役に立ちましたか?

解決

ケース $ k= 2 $ から始めて、アルゴリズムが比較ベースであると仮定します。

$ n / 2 $ 回数の単一要素でさえ見つかる任意のアルゴリズムは、index $を知っている必要があります。 $ a [i + 1]= A [i + N / 2] $ になるようなi $ 。確かに、これがそうではないとし、 $ a $ のエントリが実数であることを簡単にするために私達に想定してください。アルゴリズムが次の値を知っていると言ってください。 $$ A [I_1]=CDOT= A [J_1] $ A [I_1-1] などのアルゴリズムの知識と一致しています。 $ n / 2 $ 時間に表示されている要素がないことを手配できます。

次の形式の $ n / 2 + 1 $ 配列: $ nの実行があります。 / 2 $ 多くの $ 0 $ sいくつかの位置から始まる $ j \ in \ {1、\ ldots、 N / 2 + 1 \} $ 、そして残りの要素は一意です。そのような各配列では、上述した索引 $ i $ $ n / 2 + 1 $ の葉を持っているので、depth $を持つ必要があります。 \ omega(\ log n)$


一般的な場合、アルゴリズムは $ a [i + 1]のindex $ i $ を知っている必要があります。=出力される各要素の[i + n / k] $ 。配列を $ k / 2 $ の部分 $ 2n / k $ の部分に分割できます。 $(n / k + 1)^ k $ 以前の例、 $ r $ $ n / k $ 回数は、 $ r $ の部分にあります。これにより、 $ \ omomga(k \ log(n / k))$ の下限が与えられ、 $ k $

(アルゴリズムはおそらく激しく改善されて一致する上限を与えることができます。)

ライセンス: CC-BY-SA帰属
所属していません cs.stackexchange
scroll top