Summary: CS5050 Homework 4, Chapter 8,9
(due at class time) 10 points
Working with others is STRONGLY ENCOURAGED. Prepare your answers
individually and then compare/contrast your answers with others. The homework
questions are meant to help you prepare for exams. When you work with others, you are
motivated to consider every aspect of a problem and do your best thinking. Just doing a
google search for the answers is NOT recommended. The learning comes as you struggle
to create the answer from what you already know or from material in the chapters.
Note, these exercises may be done in groups of one, two, or three. If more than one
person is involved, list all the names on ONE set of answers. Groups may change
throughout the semester. Answers should not be compared with others not in your group.
These are typed (or hand-written neatly) exercises, but you are certainly encouraged to
actually code the programming segments if you have time.
In giving your answers, use algorithmic language, building on algorithms and
terminology used in class. In previous assignments, the term "efficient" was used as code
for "polynomial". In this and future assignments, efficient will mean the best of the
polynomial time algorithms.
Be careful about your algorithms. The algorithm should be specific enough that you
could turn it over to an undergrad and recognize the solution he/she implements as the
same algorithm you specified.