A Self-Adjusting Search Tree

A Self-Adjusting Search Tree

March 1987 | ROBERT E. TARJAN
The chapter discusses the design and analysis of efficient computer algorithms, emphasizing the importance of theoretical efficiency and the practical applicability of these algorithms. Robert E. Tarjan, a recipient of the 1986 Turing Award, shares his insights on algorithm design, focusing on two specific algorithms: a graph algorithm for testing the planarity of a graph and a self-adjusting form of search tree. In the context of graph algorithms, Tarjan and John Hopcroft developed an efficient algorithm to test the planarity of a graph, achieving a linear time complexity. They used depth-first search and a data structure called "pile of twin stacks" to achieve this, which also led to simpler and more efficient algorithms for other problems. The chapter also delves into the design of self-adjusting data structures, particularly the splay tree, which is a self-adjusting form of binary search tree. Splay trees are designed to minimize the amortized time complexity of operations, making them highly efficient in practice. The splay tree's restructuring operation, called splaying, moves the accessed node to the root, reducing the depth of all nodes accessed during the retrieval. Tarjan highlights the importance of choosing the right data structures and the impact of different efficiency measures on algorithm design. He emphasizes the need for better coupling between theory and practice, more experimental analysis of algorithms, and the development of programming languages that are both human-readable and machine-efficient. The chapter concludes with Tarjan's reflections on the field of algorithm design and his gratitude to his colleagues and the computing community.The chapter discusses the design and analysis of efficient computer algorithms, emphasizing the importance of theoretical efficiency and the practical applicability of these algorithms. Robert E. Tarjan, a recipient of the 1986 Turing Award, shares his insights on algorithm design, focusing on two specific algorithms: a graph algorithm for testing the planarity of a graph and a self-adjusting form of search tree. In the context of graph algorithms, Tarjan and John Hopcroft developed an efficient algorithm to test the planarity of a graph, achieving a linear time complexity. They used depth-first search and a data structure called "pile of twin stacks" to achieve this, which also led to simpler and more efficient algorithms for other problems. The chapter also delves into the design of self-adjusting data structures, particularly the splay tree, which is a self-adjusting form of binary search tree. Splay trees are designed to minimize the amortized time complexity of operations, making them highly efficient in practice. The splay tree's restructuring operation, called splaying, moves the accessed node to the root, reducing the depth of all nodes accessed during the retrieval. Tarjan highlights the importance of choosing the right data structures and the impact of different efficiency measures on algorithm design. He emphasizes the need for better coupling between theory and practice, more experimental analysis of algorithms, and the development of programming languages that are both human-readable and machine-efficient. The chapter concludes with Tarjan's reflections on the field of algorithm design and his gratitude to his colleagues and the computing community.
Reach us at info@study.space
[slides] Algorithm design | StudySpace