Can someone please tell me why does method timeCalc2
that measures insertion sort returns 0 ?
For example i use arrays above 100000 elements.
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner
public class Sort {
private static int[] readArray(int arraySize) {
Random r = new Random();
int[] arr = new int[arraySize];
for (int i=0; i<arr.length; i++) {
arr[i] = r.nextInt(arraySize);
}
return arr;
}
private static void insertionSort(int[] arr) {
for(int i = 1; i < arr.length; i++) {
int current = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > current) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = current;
}
}
private static void selectionSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int min_ind = i;
for (int j = i+1; j<arr.length; j++)
if (arr[j] < arr[min_ind])
min_ind = j;
int temp = arr[min_ind];
arr[min_ind] = arr[i];
arr[i] = temp;
}
}
private static double timeCalc1(int[] array) {
double start1 = System.currentTimeMillis();
selectionSort(array);
double finish1 = System.currentTimeMillis();
return (finish1 - start1) / 1000;
}
private static double timeCalc2(int[] array) {
double start2 = System.currentTimeMillis();
insertionSort(array);
double finish2 = System.currentTimeMillis();
return (finish2 - start2) / 1000;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Input array1 size : ");
int[] arr1 = readArray(sc.nextInt());
System.out.println("Input array2 size: ");
int[] arr2 = readArray(sc.nextInt());
System.out.println("Input array3 size : ");
int[] arr3 = readArray(sc.nextInt());
int[] arr1a = arr1.clone();
int[] arr2a = arr2.clone();
int[] arr3a = arr3.clone();
selectionSort(arr1);
selectionSort(arr2);
selectionSort(arr3);
insertionSort(arr1a);
insertionSort(arr2a);
insertionSort(arr3a);
System.out.println(Arrays.toString(arr1a) + "\n" + Arrays.toString(arr2a) + "\n" +Arrays.toString(arr3a) + "\n");
System.out.println("Sort time[s] array 1 by search is: " + timeCalc1(arr1));
System.out.println("Sort time[s] array 1 by inserion is: " + timeCalc2(arr1a));
System.out.println("Sort time[s] array 2 by search is: " + timeCalc1(arr2));
System.out.println("Sort time[s] array 2 by inserion is: " + timeCalc2(arr2a));
System.out.println("Sort time[s] array 3 by search is: " + timeCalc1(arr3));
System.out.println("Sort time[s] array 3 by inserion is: " + timeCalc2(arr3a));
}
}
`