As part of your review process, I recommend you study:
- Notes from class
- Reread book chapter
- Lab assignments
- Look over exercises at the end of the chapter in the book.
Chapter Five: Recursion as a Problem-Solving Technique
- Be able to define and explain backtracking and recursion.
Be able to give examples.
- Be able to understand simple grammars like those described in
the chapter. Be able to construct simple grammars.
- Understand what prefix, postfix, and infix expressions are and
know grammar rules for such expressions.
- Be able to answer questions about how to implement a recursive
grammar checker like the example grammar checkers for C identifiers,
palindromes, or other languages discussed in class.
- Be able to describe recursive algorithms for solving some simple
problems. Be able to identify the base case(s) and recursive step(s) in
simple recursive algorithms.
Chapter Nine: Algorithm Efficiency and Sorting
- Understand the role of operation counts in measuring the work
done by an algorithm.
- Know the definition of the order of an algorithm (the big-O of
- Understand the importance of big-O analysis as a comparative
measure of growth-rate functions of algorithms. Understand the way that
common big-O rates are ordered: O(1) < O(logN) < O(N) <
O(NlogN) < O(N^2) < O(N^3) < O(2^N). (Here we use the notation
b^c to denote "b raised to the power c.")
- Know properties of growth rate functions such as O(5*N^2) + O(N)
- Know the following sorting algorithms and be able to discuss
their orders appropriately: Selection Sort, Bubble Sort, Insertion
Sort, Mergesort, Quicksort, and Radixsort.
- Be able to discuss the improvements to quicksort discussed in
the text and in lectures.