Dynamic Programming21 sections · 916 units
Open in Course

Optimal BST - Walkthrough

Tracing the classic example

Build BST with minimum expected search cost. Keys have access frequencies fif_i. dp[i][j]dp[i][j] = min cost for keys ii to jj.

Transition: pick root k[i,j]k \in [i, j]. Cost = dp[i][k1]+dp[k+1][j]+l=ijfldp[i][k-1] + dp[k+1][j] + \sum_{l=i}^{j} f_l (depth increases by 1 for all nodes). QI holds for this cost function. Apply Knuth: opt[i][j1]opt[i][j]opt[i+1][j]opt[i][j-1] \leq opt[i][j] \leq opt[i+1][j]. Fill by increasing interval length. Each dp[i][j]dp[i][j] searches bounded range. Total: O(n2)O(n^2).