FSU Seal - 1851

COT 5405 Spring 2007
Advanced Algorithms
Chris Lacher
Exam 1 Review

  1. Define and describe in detail these components of an algorithm:
    1. Assumptions
    2. Body
    3. Conclusions
    4. Proof
    5. Analysis
  2. Which, if any, of these components are optional?
  3. Why are algorithms important? (30 words max)
  4. Prove a result about asymptotic bounds. Examples:
    1. if F(n) <= O(G(n)) then G(n) >= Ω(F(n))
    2. if F(n) <= O(G(n)) and F(n) >= Ω(G(n)) then F(n) = Θ(G(n))
    3. if F(n) <= O(G(n)) and G(n) <= O(H(n)) then F(n) <= O(H(n))
  5. Let P(n) = 0.1n4 + n3 + 10n2 + 100. Prove that P(n) = Θ(n4)
  6. For the algorithm X
    1. State the assumptions
    2. State the body in C-like pseudocode
    3. What is the worst case runtime? (State in general, and give an illustrative example.)
    4. What is the best case runtime? (State in general, and give an illustrative example.)
    5. What is the average case runtime? (State in general, and give an informal proof.)
    Possible values for X: SequentialSearch, LowerBound, UpperBound, SelectionSort, InsertionSort, QuickSort
  7. Sketch a proof that a Set implemented as a height-balanced tree has search, insert, and remove runtimes <= O(log n) where n = number of elements in the set.
  8. Analyze the standard traversal loop for a binary tree
  9. For a specific binary tree, give the edge moves for each step in a traversal; know what the sum of these counts should be.