CSE 2320 - Assignments

Not Graded Practice for Assignment 1

This is a set of practice questions. Feel free to work on these questions, and to ask questions if you face any difficulties in coming up with answers. While collaboration with others on the graded homework is strictly prohibited, you are free to work on these practice questions together with other people.

Since they are practice questions, you do not have to, and should not, submit answers to these questions on Blackboard. These questions will not be considered in any way towards your course grade. At the same time, based on the instructor's experience, individuals spending substantial and systematic effort in answering these practice questions by themselves tend to significantly improve their overall class performance.


Practice Question 1

(This is Problem 1.2 from the textbook).

List all the different ways to connect two different objects for the example in Figure 1.1.


Practice Question 2

(This is Problem 1.5 from the textbook).

Show the contents of the id array after each union operation when you use the quick-union algorithm (Program 1.2) to solve the connectivity problem for the sequence 0-2, 1-4, 2-5, 3-6, 0-4, 6-0, and 1-3. Also give the number of times the program accesses the id array for each input pair.


Practice Question 3

(This is Problem 1.8 from the textbook).

Show the contents of the id array after each union operation when you use the weighted quick-union algorithm with path compression by halving (Program 1.4) to solve the connectivity problem for the sequence 0-2, 1-4, 2-5, 3-6, 0-4, 6-0, and 1-3. Also give the number of times the program accesses the id array for each input pair.


Practice Question 4

(This is Problem 1.9 from the textbook).

Prove an upper bound on the number of machine instructions required to process M connections on N objects using Program 1.3. You may assume, for example, that any Java assignment statement always requires less than c instructions, for some fixed constant c.


Practice Question 5

(This is Problem 1.12 from the textbook).

Compute the average distance from a node to the root in a worst-case tree of 2n nodes built by the weighted quick-union algorithm.


Practice Question 6

(This is Problem 1.22 from the textbook).

Modify Program 1.4 to generate random pairs of integers between 0 and N - 1 instead of reading them from standard input, and to loop until N - 1 union operations have been performed. Run your program for N = 103, 104, 105, and 106, and print out the total number of edges generated for each value of N.


(Challenge) Practice Question 7

(This is Problem 1.20 from the textbook).

Modify Program 1.3 to use the height of the trees (longest path from any node to the root), instead of the weight, to decide whether to set id[i] = j or id[j] = i. Run empirical studies to compare this variant with Program 1.3.


Back to the list of assignments.