Question: Implement the Insertion Sort algorithm (Hint: use the function checked sorted to check if your output is indeed sorted.) Generate a report to discuss the

Implement the Insertion Sort algorithm (Hint: use the function checked sorted to check if your output is indeed sorted.)

Generate a report to discuss the time performance of the two algorithms. Compare it with their theoretical time complexity as discussed in the lecture. Plots and figures are encouraged to help draw the conclusion. See Figure 1 for an example of the plot.

I DID THE CODE. THE FOLLOWING CODE IS COMPLETE AND IT RUNS. THE SECOND PART I DONT KNOW HOW TO DO. I USE ECLIPSE ON WINDOWS. AM I SUPPOSED TO GENERATE A REPORT THERE? HOW? THANKS.

package sorting;

import java.util.*;

public class Sort { public static int[] insertion_sort (int[] array) { /* * fill in your program */ int n = array.length; for (int i = 1; i < n; i++) { int temp = array[i]; int j = i - 1;

while (j >= 0 && temp < array[j]) { array[j + 1] = array[j]; j--; } array[j+1] = temp; } return array; }

/* * n: the size of the output array * k: the maximum value in the array */ public static int[] generate_random_array (int n, int k) { List list; int[] array; Random rnd; rnd = new Random(System.currentTimeMillis()); list = new ArrayList (); for (int i = 1; i <= n; i++) list.add(new Integer(rnd.nextInt(k+1))); Collections.shuffle(list, rnd); array = new int[n]; for (int i = 0; i < n; i++) array[i] = list.get(i).intValue(); return array; } /* * n: the size of the output array */ public static int[] generate_random_array (int n) { List list; int[] array; list = new ArrayList (); for (int i = 1; i <= n; i++) list.add(new Integer(i)); Collections.shuffle(list, new Random(System.currentTimeMillis())); array = new int[n]; for (int i = 0; i < n; i++) array[i] = list.get(i).intValue(); return array; } /* * Input: an integer array * Output: true if the array is acsendingly sorted, otherwise return false */ public static boolean check_sorted (int[] array) { for (int i = 1; i < array.length; i++) { if (array[i-1] > array[i]) return false; } return true; } public static void print_array (int[] array) { for (int i = 0; i < array.length; i++) System.out.print(array[i] + ", "); System.out.println(); } public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Insertion sort starts ------------------"); for (int n = 100000; n <= 1000000; n=n+100000) { int[] array = Sort.generate_random_array(n); long t1 = System.currentTimeMillis(); array = Sort.insertion_sort(array); long t2 = System.currentTimeMillis(); long t = t2 - t1; boolean flag = Sort.check_sorted(array); System.out.println(n + "," + t + "," + flag); } System.out.println("Insertion sort ends ------------------"); }

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!