I have created a method for generating an array of random numbers between 1 to 100000. How can I print result for 1000, 5000, 10000 and 50000 random integers.
//main method
public static void main (String[] args) {
int[] array;
long startTime, endTime;
System.out.println ();
System.out.println (" Recorded time Ideal value");
System.out.println ("Input size(N) Linear search Binary search N Log(n)");
for(int i=10; i<=100000; i=i*10)
{
int arraySize = i;
System.out.printf ("%-15d", arraySize);
//create a random array
array = createRandomArray(arraySize);
//generate a target item random number between 1 and 100,000
int key = (int)(Math.random()*99999) + 1;
startTime = System.nanoTime();
//search using linear search
Searching.linearSearch(array, key);
endTime = System.nanoTime();
//display time elapsed in nanoseconds
System.out.printf ("%-15d", (endTime-startTime));
//Sort the array before binary search
Arrays.sort(array);
startTime = System.nanoTime();
//search using binary search
Searching.binarySearch(array, key);
endTime = System.nanoTime();
//display time elapsed in nanoseconds
System.out.printf ("%-15d", (endTime-startTime));
System.out.printf ("%-10d%.2f\n", arraySize, Math.log(arraySize)/Math.log(2));
}
}
}