Midterm Review Guide Comments: This is only a suggestion of some topics to not overlook when studying for the midterm and it is not intended to be complete. In particular, some topics on this midterm test will probably not be included. General – For all chapters May be asked to evaluate running time of algorithm or algorithm segments for algorithms we have studied. Understand and be able to answer questions about any algorithm discussed in class. I usually do not ask for a formal statement of algorithms, but may ask for an informal description of them or (more likely) for you to show the intermediate as well as final results produced by an algorithm running on fairly simple data set that I provide. Homework problems for any chapter or topic covered could either appear on the test or be the basis for questions (e.g., true-false, multiple-choice, fill-in-the-blank, short discussion, or a more detailed discussion). Chapter 1 Understand algorithm definition Understand advantages and disadvantages of analysis of algorithms using (1) complexity analysis vs (2) experimental studies. The RAM model is important, as it is the basis of our complexity analysis of algorithms. It is discussed further in the parallel topics related to PRAM. Understand basics and purpose of log-log chart. Be able to determine and compare growth rates of different algorithms using particularly the Big-Oh notation. Working understanding of logarithms and exponents and their properties will be expected In addition to Big-Oh, you should also understand Big-Omega and Big-Theta notation. I will not test little-oh or little-omega understanding. You should also know the limit definition of these concepts, as they are often easier to compute. Understand the practical value of algorithms having smaller Big-Oh complexity Understand and be able to use proof techninques. Often, these techniques allow you to better understand and simplify what you must prove in order to establish certain properties. You are likely to have a induction proof on the exam. An understanding of advantages and disadvantages of ratio test and power test. In particular, might have short-answer questions on this. Chapter 1A: PRAM Model and Algorithms The PRAM model is basis of PRAMs algorithms and its definition, concepts, and properties may be tested. (E.g., EREW, CREW, etc.) Be aware of the different types of CW. Understanding of PRAM examples and algorithms may be tested. Understanding of PRAM algorithms and their running time may be tested – perhaps by short questions or alternately by their execution on simple data sets. Understanding the comparative power of different PRAMs – e.g., EREW, CREW, etc. (if covered in slides). What is the point of Brent’s Theorem? Chapter Two: Basic Data Structures Various examples involving amortized analysis. How many cyber dollars has to be charged in particular cases and why that amount, how much is storage space expanded, etc. General understanding of how stacks, queues, etc be implemented on arrays and on singly & doubly linked lists. However, low emphasis on identifying all of the different ADT types for stacks, queues, vectors, etc. and which specific methods must be supported for each. Tree terminology, different traversals and their uses. Properties of binary trees. Print arithmetic expressions represented in trees Data structure for binary trees. Total order relation Sorting with a priority queue Various sorts and in-place sorts Material on heaps and priority queues including material on heap-sort. Binary search tree. Chapter 3 Binary search trees material including binary search, insertion, deletion, (2,4) trees and multi-way search trees Basic aspects of red-black trees such as conversion of (2,4) to Red-Black trees, definition of read-black tree, height. Skip more detailed material on Red-Black trees such as insertion and deletion related material. Understand reasons that above trees are useful. Chapter 4 Most of the material in this chapter is reasonably important. Of course, some of it is more important than other parts.