In this exercise you’ll get an intuition

  

In this exercise you’ll get an intuition for what happens when we use algorithms with different computational complexities to solve the same problem. Download these two sorting programs from the class website: SelectionSort, MergeSort.These programs test the specified sorting algorithm on an array whose size is specified by the user, then outputs the amount of time the sorting algorithm takes.
For each sorting program, the main method first prompts for the size of the array to be sorted, then reads the actual integers into the array.Modify the main method of each program so that the values in the array come not from the keyboard, but from calling Math.random() or other random number generator. (Note: Math.random() returns a value of type double in the range 0.0 <= value <= 1.0, but it’s easy to scale and convert this to an integer).Also: add a prompt asking the user if the entire sorted array should be output. If the user says no, modify the appropriate loop to output just the first 100 elements, so we can check that they really are sorted.
For large arrays you don’t want to wait while everything prints!Make a table showing the time it takes (in seconds) to perform sorts for each of these array sizes. Do this for both programs.1000
5000
10,000
50,000
100,000
500,000
1,000,000 (this may take several minutes for some programs – patience – but if it takes more than 5 minute on your computer you can terminate it)The smaller sorts will seem to complete instantaneously, while some algorithms will take quite some time as the input size gets large.
Note: when timing a program running on a computer, don’t run any other programs.Turn in your completed table.

Turn in your written results at the beginning of class on the due date.(8 points) Continue the work you began in Lab 1 with these three sorting programs: BubbleSort, InsertionSort, and QuickSort. Modify each program’s main method as before to 1) create an array of random values to sort, and 2) prompt the user about outputting the sorted array values. Run the same trials as before and record the results along with the timings you did for Lab 1:
1000
5000
10,000
50,000
100,000
500,000
1,000,000 (this may take several minutes for some programs – patience)
(2 points) Sketch two graphs showing the data from each table. Plot the timings for BubbleSort, InsertionSort, and SelectionSort on one; MergeSort and QuickSort on the other.
(2 points) Add a second array to be sorted to the main method in the QuickSort class and fill this array with values already in sorted order before calling quickSort. Run the program again on the same array sizes as in Problem 2. Create a new table showing a side-by-side comparison of QuickSort’s performance on random data versus sorted data. If the program should fail for any reason, speculate as to why and determine (within a multiple of 1000) the smallest size array that causes it to fail.
(2+2+2) Determine the runtime complexity of each of the following three methods. Express your answer first exactly, then as a Big-O estimate.
void oddOnes(double[] data) {
for (int i=1; i<data.length; i+=2) {
data[i] = 1;
}
}double findRoots(double a, double b, double c) {
double result = b * b – 4 * a * c;
double disc = Math.sqrt(result);
double[] result = {(-b + disc) / (2 * a), (-b – disc) / (2 * a)};
return result;
}void initPixels(Color[][] pixels, int pixelRows, int pixelCols, Color c) {
int row, col;
for (row = 0; row < pixelRows; row++) {
for (col = 0; col < pixelCols; col++) {
pixels[row][col] = c;
}
}
}
(2 points) The first three orders of algorithms discussed in the text are linear, logarithmic, and quadratic. Which of these three best describes the average-case behavior of BinarySearch?

Get 20% Discount on This Paper
Pages (550 words)
Approximate price: -

Try it now!

Get 20% Discount on This Paper

We'll send you the first draft for approval by at
Total price:
$0.00

How it works?

Follow these simple steps to get your paper done

Place your order

Fill in the order form and provide all details of your assignment.

Proceed with the payment

Choose the payment system that suits you most.

Receive the final file

Once your paper is ready, we will email it to you.

Our Services

Quality Essay Help has stood as the world’s leading custom essay writing services providers. Once you enter all the details in the order form under the place order button, the rest is up to us.

Essays

Essay Writing Services

At Quality Essay Help, we prioritize on all aspects that bring about a good grade such as impeccable grammar, proper structure, zero-plagiarism and conformance to guidelines. Our experienced team of writers will help you completed your essays and other assignments.

Admissions

Admission and Business Papers

Be assured that you’ll definitely get accepted to the Master’s level program at any university once you enter all the details in the order form. We won’t leave you here; we will also help you secure a good position in your aspired workplace by creating an outstanding resume or portfolio once you place an order.

Editing

Editing and Proofreading

Our skilled editing and writing team will help you restructure you paper, paraphrase, correct grammar and replace plagiarized sections on your paper just on time. The service is geared toward eliminating any mistakes and rather enhancing better quality.

Coursework

Technical papers

We have writers in almost all fields including the most technical fields. You don’t have to worry about the complexity of your paper. Simply enter as much details as possible in the place order section.