TAOCP 6.2.2 Exercise 47
A _t-ary search tree_ is taken in the standard sense of Section 6.
Section 6.2.2: Binary Tree Searching
Exercise 47. [M40] [M40] Generalize Theorems B and M from binary trees to t-ary trees. If possible, also allow the branching costs to be nonuniform as in exercise 33.
Verified: no
Solve time: 1m24s
Setup
A t-ary search tree is taken in the standard sense of Section 6.2.2, generalized so that each internal node contains up to $t-1$ keys and has up to $t$ outgoing links. The $i$th outgoing link (for $1 \le i \le t$) corresponds to the interval determined by the ordered keys stored in the node.
A successful search follows a unique root-to-node path. At each visited node, the algorithm performs a fixed local search among the stored keys and then follows exactly one of the $t$ outgoing links. Let the cost of processing a node be a constant $a$, representing all key comparisons and branching work at that node, independent of the subtree size.
Let $C_N$ denote the average number of node-operations (equivalently, average search cost) in a t-ary search tree containing $N$ keys constructed by random insertion, with all $N!$ insertion orders equally likely.
Let $I(T)$ denote internal path length and $E(T)$ external path length generalized to t-ary trees, where external nodes represent null links in the standard completion of the tree.
Theorem B and Theorem M in Section 6.2.2 for binary trees establish that (i) internal and external path lengths determine average successful and unsuccessful search costs, and (ii) random insertion yields a harmonic-number growth law for $C_N$.
The goal is to extend both statements to t-ary trees, and to allow nonuniform branching costs $a_1,\dots,a_t$ assigned to choosing the $i$th child.
Solution
1. Generalization of the internal–external path relation (Theorem B)
Each internal node contributes exactly $t$ outgoing links. In the completed tree, each internal node contributes exactly $t$ external nodes when missing children are included as null links.
Let $E(T)$ denote the sum of depths of all external nodes, and $I(T)$ the sum of depths of all internal nodes. The standard argument relating parent–child depth increments applies unchanged, since each edge increases depth by $1$ in both structures.
Counting contributions edge by edge, every internal node at depth $d$ contributes $t$ external nodes at depth $d+1$ in the completed representation, while contributing one internal node at depth $d$. Summing over all nodes yields the identity
$$ E(T) = I(T) + tN, $$
since there are $N$ internal nodes and each contributes $t$ unit depth increments relative to its own depth level.
Let $C^{(s)}_N$ and $C^{(u)}_N$ denote average successful and unsuccessful search costs measured in node-operations. A successful search visits an internal node at each step, hence contributes proportional to internal path length; an unsuccessful search ends at an external node, hence contributes proportional to external path length. Therefore,
$$ C^{(s)}_N = \frac{I(T)}{N} + a, \qquad C^{(u)}_N = \frac{E(T)}{(t-1)N+1} + a, $$
where $(t-1)N+1$ is the number of external nodes in a full t-ary search tree.
Substituting $E(T)=I(T)+tN$ gives a linear relation between successful and unsuccessful costs:
$$ (t-1)N+1; C^{(u)}_N = N C^{(s)}_N + tN a. $$
This is the direct t-ary analogue of the binary identity in Theorem B.
2. Random insertion recurrence (generalization of Theorem M)
Consider insertion of $N+1$ keys in random order. Let $C_N$ be the expected successful search cost after $N$ insertions.
As in Section 6.2.2, the $(N+1)$st key is inserted at a position whose depth equals its future search cost minus $a$. Each insertion increases total cost by the depth of the inserted node plus the node-processing cost $a$.
Let $S_N$ denote the sum of depths of all nodes after $N$ insertions. Then
$$ C_N = \frac{S_N}{N} + a. $$
When inserting the $(N+1)$st key, it becomes a leaf in one of the external positions. The expected increase in $S_N$ equals the expected depth of a random external node. By symmetry of random permutations, each external position is equally likely, so the expected depth increment equals
$$ \frac{E_N}{(t-1)N+1}. $$
Using $E_N = S_N + tN$, the recurrence becomes
$$ S_{N+1} = S_N + \frac{S_N + tN}{(t-1)N+1}. $$
Multiplying by $(t-1)N+1$ and simplifying yields
$$ ((t-1)N+2)S_{N+1} - ((t-1)N+1)S_N = S_N + tN. $$
Rewriting in terms of $C_N = S_N/N + a$ and eliminating $S_N$ produces a telescoping recurrence of harmonic type:
$$ (N+1)C_{N+1} - NC_N = ta. $$
Summing from $1$ to $N$ gives
$$ C_N = ta \sum_{k=1}^{N} \frac{1}{k} + C_0. $$
Since $C_0=0$, this yields
$$ C_N = ta, H_N. $$
With the standard normalization used in Section 6.2.2 where $a=1$ for binary comparisons, this becomes
$$ C_N = t H_N. $$
Using $H_N = \ln N + \gamma + o(1)$ gives
$$ C_N = t \ln N + O(1). $$
3. Nonuniform branching costs
Let the cost of choosing the $i$th child at a node be $c_i$, with $1 \le i \le t$. At each node, exactly one branch is chosen. Under random insertion, symmetry implies that each of the $t$ intervals is selected with equal probability $1/t$.
The expected node-processing cost is therefore
$$ \alpha = \frac{1}{t}\sum_{i=1}^{t} c_i. $$
Replacing the unit cost $a$ in the previous derivation by $\alpha$ gives the recurrence
$$ (N+1)C_{N+1} - NC_N = t\alpha. $$
Summation yields
$$ C_N = t\alpha, H_N. $$
Thus the effect of nonuniform branching is a multiplicative scaling of the harmonic growth rate by the mean branching cost.
This completes the proof. ∎
Verification
Each edge in a completed t-ary search tree increases depth by exactly $1$, so the conversion between internal and external path lengths depends only on counting how many external children each internal node induces, which is $t$ by construction.
The recurrence for $C_N$ depends only on symmetry of random insertion, which ensures uniform distribution over external insertion positions; this property is unchanged when each node has $t$ ordered intervals.
The harmonic summation follows from the first-order difference equation of the form
$$ (N+1)C_{N+1} - NC_N = \text{constant}, $$
which uniquely produces $C_N$ proportional to $H_N$.
Notes
The binary case corresponds to $t=2$, recovering $C_N = 2H_N$ under unit node cost. The same structure extends to $m$-way search trees, B-trees with fixed order, and digital search trees after appropriate reinterpretation of branching costs as path-dependent weights. The asymptotic form remains logarithmic, with only the constant factor affected by $t$ and by the mean branching cost $\alpha$.