# 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?

Pages (550 words)
Approximate price: -

Why Choose Us

Quality Papers

We value our clients. For this reason, we ensure that each paper is written carefully as per the instructions provided by the client. Our editing team also checks all the papers to ensure that they have been completed as per the expectations.

Over the years, our Acme Homework has managed to secure the most qualified, reliable and experienced team of writers. The company has also ensured continued training and development of the team members to ensure that it keep up with the rising Academic Trends.

Affordable Prices

Our prices are fairly priced in such a way that ensures affordability. Additionally, you can get a free price quotation by clicking on the "Place Order" button.

On-Time delivery

We pay strict attention on deadlines. For this reason, we ensure that all papers are submitted earlier, even before the deadline indicated by the customer. For this reason, the client can go through the work and review everything.

100% Originality

At Essay USA, all papers are plagiarism-free as they are written from scratch. We have taken strict measures to ensure that there is no similarity on all papers and that citations are included as per the standards set.

Our support team is readily available to provide any guidance/help on our platform at any time of the day/night. Feel free to contact us via the Chat window or support email: support@acmehomework.com.

Try it now!

## Calculate the price of your order

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

How it works?

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

Proceed with the payment

Choose the payment system that suits you most.

Our Services

Essay USA 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.

## Essay Writing Services

At Essay USA, 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.