**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 2) Assume 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.