I need to find average number of recursive calls in quick-sort with array of length 2. I established and solved the following recursion:
$$T_N = \frac{1}{N}\sum_{k=1}^N\left(T_{k-1}+N_{N-k}\right) = \frac{N+1}{N}T_{N-1} = \frac{N+1}{3}.$$
Where $T_0 = T_1 = 0, T_2 = 1$. But:
\begin{align*} T_3 &= 1/3(1 + 1) &= 2/3\\ T_4 &= 1/4(2/3 + 1 + 1 + 2/3) &= 5/6\\ T_5 &= 1/5 (5/4 + 2/3 + 2 + 2/3 + 5/4) &= 7/6\\ T_6 &= 1/6(7/6 + 5/6 + (1+2/3) + (1+2/3) + 5/6 + 7/6) &= 11/9 \end{align*}
The results are different. How to do it right?
EDIT: The code for quick-sort in question is:
void quicksort(int[] a, int lo, int hi)
{
if (hi <= lo) return;
int i = lo-1, j = hi;
int t, v = a[hi];
while (true) {
while (a[++i] < v) ;
while (v < a[--j]) if (j == lo) break;
if (i >= j) break;
t = a[i]; a[i] = a[j]; a[j] = t;
}
t = a[i]; a[i] = a[hi]; a[hi] = t;
quicksort(a, lo, i-1);
quicksort(a, i+1, hi);
}