クイックソート アルゴリズムの次の最悪のシナリオを証明しようとしていますが、問題が発生しています。最初に、n = ij のサイズ n の配列があります。アイデアは、Quicksort のすべての分割ステップで、1 つはサイズ i で、もう 1 つはサイズ i(j-1) の 2 つのサブ配列になるということです。この場合、i は 0 より大きい整数定数です。いくつかの例の再帰ツリーを引き出して、これが最悪のシナリオであり、実行時間が theta(n^2) になる理由を理解しました。これを証明するために、反復法を使用して再帰方程式を解きました。
T(n) = T(ij) = m if j = 1
T(n) = T(ij) = T(i) + T(i(j-1)) + cn if j > 1
T(i) = m
T(2i) = m + m + c*2i = 2m + 2ci
T(3i) = m + 2m + 2ci + 3ci = 3m + 5ci
したがって、再発は次のようになります。
j
T(n) = jm + ci * sum k - 1
k=1
この時点で、私は何をすべきかについて少し迷っています。最後の合計は、展開すると j^2 になるように見えますが、それが何らかの形で n^2 に等しいことを示す必要があります。これを続行する方法についての説明をいただければ幸いです。