CS
3100

Fall 2006

Study Guide

Fall 2006

Study Guide

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
the algorithm).

- 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)
= O(N^2)

- 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.