Create a project using the arraylist class and the main


Lab Assignment: Data Structures and Algorithms

There are four exercises in this lab, although not all of them will be required for submission. Be sure to read the following instructions carefully.

Exercise 1: No submission is required.

Note that one of the exercises requires sections of code to be timed. To review how to time a section of your source code, please refer to the beginning of the Projects section in Chapter 4 of our textbook.

Exercise 2 requires not only software development but also explanations about the results of the experiments that are conducted. Create a separate Word document to provide the details required in the exercise.

Create a folder and name it Week 5 Lab. Inside this folder, create the subfolders Ex2, Ex3, and Ex4. Place the solution to each of the three exercises required for submission in the corresponding subfolder. Compress the folder Week 5 Lab, and place the resulting zipped folder into the Dropbox.

Note that Exercises 2, 3, and 4 require software development. Place in the corresponding folders only .java files. Do not submit the .class files or other files or folders that are generated by the IDE.

Exercise 1: Review of the Lecture Content

Create a project using the ArrayList class and the Main class in Search Algorithms. The ArrayList class contains implementations of the first three search methods explained in this week's lecture: sequential, sorted, and binary search. The Main class uses these three methods. These programs test the code discussed in the lecture. Compile the project, run it, and review the code that is given carefully.

Exercise 2: Search Algorithms and Techniques

Expand the project developed in the previous exercise to perform the following experiment: Time the sequential search and the binary search methods several times each for randomly generated values, and record the results in a table. Do not time individual searches, but groups of them. For example, time 100 searches together or 1,000 searches together. Compare the running times of these two search methods that are obtained during the experiment.

Regarding the efficiency of both search methods, what conclusion can be reached from this experiment? Both the table and your conclusions should be included in a separate Word document.

Exercise 3: Searching Applications

The following problem is a variation of Project 4 in the "Projects" section of Chapter 18 in our textbook:

Consider an array data of n numerical values in sorted order and a list of two numerical target values. Your goal is to compute the smallest range of array indices that contains both of the target values. If a target value is smaller than data[0], the range should start with a -1. If a target value is larger than data[n-1], the range should end with n.

For example, given the array

0

1

2

3

4

5

6

7

5

8

10

13

15

20

22

26

the following table illustrates target values and their corresponding ranges:

Target Values

Smellest Range of Indices

2, 8

[-1, 1]

9, 14

[1, 4]

12, 21

[2, 6]

14, 30

[3, 8]

Devise and implement an algorithm that solves this problem.

Exercise 4: Hashing

Suppose that the type of key in a hashing application you are implementing is string (Sections 21.7 and 21.8 in our textbook explain hash functions for strings). Design and implement a hash function that converts a key to a hash value. Test your function by computing the hash values for the Java keywords. Was a key collision produced?

Solution Preview :

Prepared by a verified Expert
Data Structure & Algorithms: Create a project using the arraylist class and the main
Reference No:- TGS02177514

Now Priced at $60 (50% Discount)

Recommended (92%)

Rated (4.4/5)