0

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));
    }   
}

}

0 Answers0