Top-down Algorithms for Constructing Nearly Optimal Binary Search Trees