@MISC{Demaine10overview, author = {Prof Erik Demaine}, title = {Overview}, year = {2010} }

Bookmark

OpenURL

Abstract

In the last lecture we discussed Binary Search Trees(BST) and introduced them as a model of computation. A quick recap: A search is conducted with a pointer starting at the root, which is free to move about the tree and perform rotations; however, the pointer must at some point in the operation visit the item being searched. The cost of the search is simply the total number of distinct nodes in the trees that have been visited by the pointer during the operation. We measure the total cost of executing a sequence of searches S = �s1, s2, s3...�, where each search si is chosen from among the fixed set of n keys in the BST. We have witnessed that there are access sequences which require o(log(n)) time per operation. There are also some deterministic sequences on n queries (for example, the bit reversal permutation) which require a total running time of Ω(n log(n)) for any BST algorithm. This disparity however does not rule out the possibility of having an instance optimal BST. By this we mean: Let OPT(S) denote the minimal cost for executing the access sequence S in the BST model, or the cost of the best BST algorithm which has access to the sequence apriori. It is believed that splay trees are the “best BST”. However, they are not known to have o(log(n)) competitive ratio. Also, notice that we are only concerned with the cost of the specified operations on the BST and we are not