2
セットのうち少なくとものアイテムを検索します
検討値の組は、(無重複とソート配列として表され、既知の大きさ(すなわちサイズはO(1))の値がOに等しいかどうかを試験することができる。(1)時間を得ることができる。私が欲しいです中で少なくとも異なるセットに存在する値のセットを取得します。nnnkkknnn これを行うための明らかなアルゴリズムは、すべてのセットを調べて、各値の出現回数をカウントし、カウントがより大きい値を返すことです。しかし、場合によっては、より良い方法もあります。たとえば、で、一方のセットが他方のセットよりもはるかに小さい場合、すべての項目を調べてバイナリ検索を実行する方が効率的です。それぞれについて:バイナリ検索アプローチのコストはあるのに対し、ナイーブアプローチのコストはです。kkkn=k=2n=k=2n = k = 2S1S1S_1S2S2S_2S1S1S_1S2S2S_2O(|S1|log(|S2|))O(|S1|log(|S2|))O(|S_1| \log(|S_2|))O(|S1|+|S2|)O(|S1|+|S2|)O(|S_1| + |S_2|)|S1|<<|S2||S1|<<|S2||S_1| << |S_2| これを念頭に置いて、どのような状況でナイーブアルゴリズムよりもうまくやることができますか?(これがよく知られている問題である場合、その通常の名前を知っており、参考にしていただければ幸いです)