Answered step by step
Verified Expert Solution
Link Copied!

Question

00
1 Approved Answer

1) Merge Sort and Insertion Sort Programs Implement merge sort and insertion sort to sort an array/vector of integers. You may implement the algorithms in

1) Merge Sort and Insertion Sort Programs Implement merge sort and insertion sort to sort an array/vector of integers.

You may implement the algorithms in the language of your choice, name one program mergesort and the other insertsort.

Your programs should be able to read inputs from a file called data.txt where the first value of each line is the number of integers that need to be sorted, followed by the integers.

Example values for data.txt: 4 19 2 5 11 8 1 2 3 4 5 6 1 2

The output will be written to files called merge.out and insert.out.

For the above example the output would be: 2 5 11 19 1 1 2 2 3 4 5 6

2) The goal of this problem is to compare the experimental running times of the two sorting algorithms.

a) Now that you have proven that your code runs correctly using the data.txt input file, you can modify the code to collect running time data. Instead of reading arrays from a file to sort, you will now generate arrays of size n containing random integer values from 0 to 10,000 and then time how long it takes to sort the arrays.

b) Use the system clock to record the running times of each algorithm for n = 1000, 2000, 5000, 10,000, . You may need to modify the values of n if an algorithm runs too fast or too slow to collect the running time data. If you program in C your algorithm will run faster than if you use python. You will need at least seven values of t (time) greater than 0. If there is variability in the times between runs of the same algorithm you may want to take the average time of several runs for each value of n.

c) For each algorithm plot the running time data you collected on an individual graph with n on the x-axis and time on the y-axis. You may use Excel, Matlab, R or any other software. Also plot the data from both algorithms together on a combined graph. Which graphs represent the data best?

d) What type of curve best fits each data set? Again you can use Excel, Matlab, any software or a graphing calculator to calculate a regression equation. Give the equation of the curve that best fits the data and draw that curve on the graphs of created in part c).

e) How do your experimental running times compare to the theoretical running times of the algorithms? Remember, the experimental running times were average case since the input arrays contained random integers.

f) Generate best case and worst case input for both algorithms and repeat the analysis in parts b) to d) above.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions