(5/5)

CMSC 451 Project 1

The first project involves benchmarking the behavior of Java implementations of one of the

following sorting algorithms, bubble sort, selection sort, insertion sort, Shell sort, merge sort,

quick sort or heap sort. You must post your selection in the "Ask the Professor" conference. No

more than five students may select any one algorithm.

You must write the code to perform the benchmarking of the algorithm you selected. Your

program must include both an iterative and recursive version of the algorithm. You do not have

to write the sorting algorithms yourself, you may take them from some source, but you must

reference your source.

You must identify some critical operation to count that reflects the overall performance and

modify each version so that it counts that operation. In addition to counting critical operations

you must measure the actual run time.

In addition, you should examine the result of each call to verify that the data has been properly

sorted to verify the correctness of the algorithm. If the array is not sorted, an exception should be

thrown.

It should also randomly generate data to pass to the sorting methods. It should produce 50 data

sets for each value of n, the size of the data set and average the result of those 50 runs. The exact

same data must be used for the iterative and the recursive algorithms. It should also create 10

different sizes of data sets. Choose sizes that will clearly demonstrate the trend as n becomes

large.

You should also calculate the coefficient of variance of the critical operation counts and time

measurement for the 50 runs of each data set size as a way to gauge the data sensitivity of the

algorithm.

Your program must be written to conform to the following design:

Your output should look at follows:

Data

Set

Size n

Iterative Recursive

Average

Critical

Operation

Count

Coefficient of

Variance of

Count

Average

Execution

Time

Coefficient of

Variance of

Time

Average

Critical

Operation

Count

Coefficient of

Variance of

Count

Average

Execution

Time

Coefficient of

Variance of

Time

100

200

The data set sizes above are examples. You are to select the actual data set sizes. On the due date

for project 1, you are to submit a .zip file that includes the source code of your complete

program. All the classes should be in the default package.

You must research the issue of JVM warm-up necessary for properly benchmarking Java

programs and ensure that your code performs the necessary warm-up so the time measurements

are accurate.

Grading Rubric

Criteria Meets Does Not Meet

100 points 0 points

Design

20 points 0 points

Implemented the required design (20) Did not implement the required design

(0)

Input

20 points 0 points

Created 10 different sizes of data sets

(10)

Did not create 10 different sizes of data

sets (0)

Produced 50 data sets for each value of

n (10)

Did not produce 50 data sets for each

value of n (0)

Sorting Algorithm

Benchmark

Calculations

35 points 0 points

Correctly averaged the count and time

results of the 50 data sets (10)

Did not correctly average the count

and time results of the 50 data sets

Calculated the coefficient of variance

of the critical operation counts and

time measurement (5)

Did not calculate the coefficient of

variance of the critical operation

counts and time measurement (0)

Included correct sorting algorithm and

code to verify data was properly sorted

(10)

Did not Include correct sorting

algorithm and code to verify data was

properly sorted (0)

Performed the necessary warm-up so

the time measurements were accurate

(10)

Did not perform the necessary warmup so the time measurements were

accurate (0)

Output

25 points 0 points

Output all the required data (15) Did not output all the required data (0)

Output displayed in the required

format (10)

Output not displayed in the required

format (0)

(5/5)

DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma

Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t

Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th

1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

(5/5)

Buy Now
$35 USD