## Algorithm Design Techniques

**COMP-360B
Assignment 1
Due: January 24, 2003 5pm**

*Last update: January 15, 2003*

Assignments
are to be left in the box near the labs, McConnell 1st floor.

Late assignments -10% per day, including weekends.

If you work closely with someone else, indicate the person's name(s) on
your homework.

The final write-up of each assignment must, however, be your own work.

1. Read the course notes on selection and do all the exercises.

( http://www.cs.mcgill.ca/~avis/courses/360/notes/selection.ps
)

2. You are given a graph G=(V,E) and a set of positive
weights assigned to each edge. You are also given a spanning
tree T for G. Your job is either to verify that T is in fact a minimum weight
spanning tree, or give a tree T' that has strictly smaller weight than T.
Find an efficient algorithm for this problem, prove it is correct, discuss
how to implement it,

and give its worst case time complexity. Assume that the graph is
given by its adjacency matrix. Write your algorithm out in pseudo code.

**Note**: I am not asking you to find a minimum weight spanning tree, just
to verify whether or not a given tree is a minimum weight spanning tree.