Last modified:

**Assigned:**
Wed 30 Sep 2009

**Due:**
Wed 7 Oct 2009

- Please review the course syllabus and make sure that you understand the course policies for grading, late homework, and academic honesty.
- On the
*first page*of your solution write-up, you*must*make explicit which problems are to be graded for "regular credit", which problems are to be graded for "extra credit", and which problems you did not attempt. Please use a table something like the followingProblem 01 02 03 04 05 06 07 08 09 ... Credit RC RC RC EC RC RC NA RC RC ... where "RC" is "regular credit", "EC" is "extra credit", and "NA" is "not applicable" (not attempted). Failure to do so will result in an arbitrary set of problems being graded for regular credit, no problems being graded for extra credit, and a five percent penalty assessment.

- You must also write down with whom you worked on the assignment. If this changes from problem to problem, then you should write down this information separately with each problem.

**Required:** Do four of the five problems below. Problem 4 is an exercise in the book but counts as a problem here.

**Points:** 20 points per problem.

Unless otherwise indicated, exercises and problems are from *Introduction to Algorithms* by Cormen, Leiserson, Rivest, and Stein. The edition (2^{nd} or 3^{rd}) will be indicated if the numbering differs.

- Problem 8-2
- Problem 8-6
- Suppose that you are given the task of devising an algorithm for
sorting
*n*records and that the basic operation in your algorithm is an exchange: Exchange(*i*,*j*) swaps the data records in positions*i*and*j*. (Insertion Sort is an example of such an algorithm.) The width of an exchange is defined to be the distance across which data records are moved, i.e.,*j - i*for Exchange(*i*,*j*). Prove that any algorithm for sorting which uses only constant width exchanges must run in Ω(*n*^{2}) time in the worst case. - Exercise 9.3-7
- Let the
*multi-selection problem*be defined as follows. The input is a set*S*of*n*distinct keys drawn from some totally ordered universe, and a set of*k*+ 1 integers*r*such that 1 =_{i}*r*_{0}<*r*_{1}. . . <*r*+1. The output is a partition of_{k}= n*S*into*k*sets*S*_{0}, . . .,*S*_{k-1}such that*S*is the set of all keys with ranks greater than or equal to_{i}*r*and strictly less than_{i}*r*_{i+1}. Give an*O*(*n*lg*k*) time comparison-based algorithm for the multi-selection problem. You may assume for simplicity that*k*is a power of 2.

Harriet Fell

College of Computer Science, Northeastern University

360 Huntington Avenue #340 WVH,

Boston, MA 02115

Email: fell@ccs.neu.edu

Phone: (617) 373-2198 / Fax: (617) 373-5121

The URL for this document is: http://www.ccs.neu.edu/home/fell/CS5800/F09/Homeworks/hw.04.html