2つの要素がランダム化されたクイックソートで比較される可能性
質問
ランダム化されたクイックソート分析の特定の部分に問題があります。
ランダム化されたクイックソートアルゴリズムに従って、ピボットは、それが毎回特定のインデックスを選択するのではなく、ランダムインデックスから呼び出される所定のサブセットから選択されます。
今度は、 $ n $ をランダム化されたQuickSort Algorithmに指定したとします。
今すぐ私は下記のテキストのLemma-7.1の証明を見てください。今度は、要素の任意の順列になることができるアレイを与えましたが、 $ LEMMA-7.1 $の証明直後の段落では。
分析を行っている間に、入力配列のソートされたインスタンスを考慮した著者はなぜですか?
さらに、式 $(7.2)$ の後にテキストを見ると、 $ Z_I $ は、 $ z_j $ と比較します。これで、サブセット{SPAN CLASS="MATH-CONTERY"> $ Z_I $ 、...、 $ z_j $ }を検討していることです。 $ z_i $ の比較の場合ではありません。 $ z_j $ を考えると特にアクセスしない特定のサブセットのみ?私たちがランダム化されたアプローチを使用していると言うことを意味し、すべての可能なケースの置換などのより広い外観を使用して比較の可能性が得られます。
特定のサブセットを使用していて、分類されていて分類されていますが、私たちのアルゴリズムの正しい確率をどのように手に入れていますか...
{z1,z2,...,zn} zi being the ith minimum element
^
|
----------------------------------------------------
|
--P(Zi is compared with Zj) |
| |
| |
|-----> We are considering |
| Zij = {Zi,Zi+1,...,Zj} which is a subset of --------
|
|------ Aren't we considering a very specific case??
.
と $ 1 /(j-i + 1)$ - >合計いいえ。の要素の サブセットも固定されています 特定の $ i $ と $ j $
$ z_i $ の比較可能性を考慮して、 $ z_j $ 、サブセット2つの要素はそこにあり、分割されるべきである(つまり、可能な要素からなる)、任意のサイズ( $ J-i + 1 $ だけでなく) )...は、実際にすべてを取っているランダム化状態である可能性があります。 アカウントではありません。彼らが上記の確率を見つけるために使用している論理を説明することができますそしてまた私達が私達が正しく比較の可能性を見つけていることを私に説得してください。
参照のための対応する紹介の対応するページを添付している3RD_CLRS
href="https://i.stack.imgur.com/lzkqs.png" rel="nofollownoreferrer">
解決
非常に単純な証明:xとyの間の値を有するd整数がある場合、アレイにn≧2個の要素があると主張し、次いでxとyが比較される確率は2 /(d + 2 )、nとは無関係です。
誘導による証明:n= 2の場合、すごくd= 0であるので、クレームはxとyが確率2 /(0 + 2)= 1と比較されることである。比較される。
今すぐN≧3を入れてください。最初の分割のために、ランダムにピボットを選択します。すべてのアレイ要素がピボットに対して比較され、他の比較はできません。そのため、偶然の場合、ピボット、x、yが比較されるため、xまたはyを選択します。その可能性は2 / nです。一致すると、xとyの間の値を持つd要素の1つを選択すると、パーティション化はxを1つのパーティションと他方のパーティションに移動しますので、比較されません。他のn - d - 2要素のうちの1つを選択した場合、xとyは同じパーティション内で終わり、そして誘導によって彼らは確率2 /(d + 2)と比較されます。
だからxとyが比較される確率は
です2 / n + (n - d - 2) / n * 2 / (d + 2) =
2 * (d + 2) / (n * (d + 2)) + 2 * (n - d - 2) / (n * (d + 2)) =
(d + 2 + n - d - 2) * 2 / (n * (d + 2)) =
2 * n / (n * (d + 2)) =
2 / (d + 2) qed.
.
それはもちろんyuvalと同じ結果です.J - i |= D + 1.分析を非常に簡単にします。たとえば、「N> 5の場合は5つの要素を拾い上げてこれら5の中央値をピボットとして選択する」と言った場合、分析ははるかに複雑になるでしょう。
ps。用紙の証明ははるかに簡単です。配列を分割するときは、 $ x_i $ と $ x_j $ i <=ピボット<= jのピボットが使用されるまで、同じサブパーティション内に残ります。そのピボットがiまたはjの場合、 $ x_i $ と $ x_j $ が比較されます。比較した。そのため、2 /(abs(j-i)+ 1)です。他のヒント
証明の考えは、任意の2つの要素 $ x、y $ の任意の2つの要素、それらがアルゴリズムで比較される可能性を計算することです。この確率はアレイ全体に依存する可能性があります。ただし、 $ x、y $ 、つまり並べ替えられた配列の相対順序の順序統計だけを考えることができることがわかります。 $ x $ が $ i $ の $ y $ は、 $ j $ の$ j $ は、 $ x、y $ は $ \ frac {2} {| JI | + 1} $ です。
これは特別な場合ではありません - すべての要素 $ x $ は $ i $ 最小の要素、 $ i $ の値の場合は。これは、 $ x $ 、 $ y $ という確率を計算できるようにするのにすぎません。比較した。