背景: Chao Xuは先ほど次の質問を投稿しました:「各要素が回比較されるように、ソートネットワークに還元しない既知の比較ソートアルゴリズムはありますか?」私たちは問題に少しこだわっているようです。2009年にValentin Polishchukと同じ問題について話し合いましたが、どこにも行き当たりませんでした。
新鮮なアイデアを得るために、私は同様のフレーバーを持ち、完全に些細ではない可能な限り単純な質問を考え出そうとしました。したがって、次の質問。
質問:ソートされたリストが2つあり、それぞれに要素があります。各要素がO (1 )回だけ比較されるようにリストをマージできますか?
当然、出力はすべての要素を含むソートされたリストである必要があります。
[これは些細なことが判明し、答えは「いいえ」です。]
質問2:ソートされたリストが2つあり、各リストには要素があります。少数の要素を破棄することが許可されている場合、各要素がO (1 )回だけ比較されるようにリストをマージできますか?
より正確には、出力が含まれてソートされたリストであるべきであるの要素を、そして「ごみ箱」が含まれているT (N )要素。値T (n )をどれだけ小さくできますか?T (n )= nを取得するのは簡単です。T (n )= n / 100のようなものは、簡単に実行できるはずです。しかし、T (n )= o (n?
ノート:
ここでは比較モデルを使用します。決定論的アルゴリズムのみ、最悪の場合の保証に興味があります。
両方のリストには正確に要素があることに注意してください。私たちが持つつのリストがあった場合n個の要素として、別の1つの要素を、答えは「ノー」、明らかです。ただし、両方のリストが長い場合、「ロードバランシング」を実行できる可能性があるようです。
今回は、あらゆる種類のアルゴリズムが有効です。アルゴリズムが構築ネットワークとしてソートネットワークを使用している場合、それはまったく問題ありません。
開始点として、各要素を最大200回比較する単純なアルゴリズムを次に示します。標準のマージアルゴリズムを使用するだけで、リストの先頭のカウンターを維持します。200に達したら、要素を破棄します。これで、破棄する各要素について、出力配列に200個の要素が正常に配置されました。したがって、を達成しています。