Homework 1. Due: Tuesday, November 29, 2005 Submission: * By plain text e-mail to lboloni@cpe.ucf.edu. * The subject of the e-mail should be: EEL4851 - HW1 - <> * Paste your Java source into the plaintext e-mail. * Don't forget to put your plain name in the subject, as your e-mail address might be "cryptic". Consider the Student and HashTest class defined for the lecture on October 27th. 1. Create a functions which generates lists of random students of a certain length: List createRandomList(int length); (Use the function created in HashTest). 2. a) Implement the following sorting algorithms for sorting lists of students: -bubble sort: void sortBubble(List student) -insertion sort void sortInsertion(List student) -shell sort void sortShell(List student) -merge sort void sortMerge(List student) b) Measure how long does it take for each of these functions to sort a list of 100, 500, 1000, 5000, 10000, 50000 random students generated with createRandomList(). c) Do the same measurements for the sort function provided by the Java Collections class. 3. Implement a binary search tree which stores the students: class BinarySearchTree { BinarySearchTree left; BinarySearchTree right; Student content; } a) Implement the following functions: void insert(Student student); -inserts a student in the right location in the tree List extractSortedList(); -extracts a sorted list of students through the traversal of the tree. What kind of traversal of the tree do you need for this? b) By inserting all the nodes in the tree and extracting them with extractSortedList() you can optain a sorting algorithm. Compare the performance of this sorting algorithms with the other algorithms by the same method deployed in 2b.