Design and Analysis of Algorithms Homework

Homework # Due Date Description
1   Friday, Sept 12 Sect 2.1 - 2, 7, 8; Sect 2.2 - 9, 10; Sect 2.3 - 5, 10; Sect 2.4 - 8, 9 
2   Friday, Sept 19 Sect 3.1 - 7; Sect 3.2 - 9 (actually write a program to solve it -- it does NOT need to have a good user-interface); Sect 3.3 - 6; Sect 3.4 - 8 
3   Friday, Oct. 3 Sect 4.1 - 3; Sect 4.2 - 8, 10;  Sect 4.3 - 5; Sect 4.4 - 4

and implement the "table search" problem described below

4   Tuesday, Oct. 21 Section 5.1: 6, 9; Sect 5.2: 8; Sect 5.4: 10 (actually write a program to solve it. Hints:

1) use n-bit bit-strings to represent the sets, so your algorithm should generate all the bit-strings with k 1's

2) Assume n is not more that 32, so you can use unsign integers to represent a set.

3) You can modify the JohnsonTrotter algorithm to solve this problem)

Sect 5.5: 2; Sect: 5.6: 9 

Extra credit: implement the decrease-by-conquer algorithm we discussed in class for making change using the fewest number of coins.

5   Friday, Oct. 31  Section 6.1: 3, 7

Section 6.3: 4, 5, 7

Section 6.4: 1, 6, 10

Section 6.6: 9

6   Thursday, Nov 13 Section 7.1: 7

Section 7.2: 1

Section 7.3: 1, 2, 8, 10 (Write the program! You may chose to implement either an open hash table or a closed hash table with linear probing) Program for exercise 10 may be handed in on 11/20.

Section 7.4: 3, 4, 6 

7   Tuesday, Dec. 9 Section 8.1: 9 (write a program)

Section 8.2: 7

Section 8.3: 10

Section 8.4: 1

Section 9.1: 3

Section 9.3: 2 

8    

Table Search problem: Implement (write a program!) a divide-and-conquer solution to

the following problem:

Search in an m x n array , say M, of integers for a target value. The array elements are ordered such that:

1) M[i][j] <= M[i+1][j] (as you go down a column the elements get bigger or stay the same), AND

2) M[i][j] <= M[i][j+1] (as you go to the right in a row the elements get bigger or stay the same)

If the array contains multiple copies of the target, you algorithm just needs to find one.