/* File: SearchDemo.java - March 2014 */ package l07; /** * Basic demo file for array searching. * * @author Michael Albert * */ import java.util.Arrays; import static l07.ArrayManipulation.*; // Allow short form for method names public class SearchDemo{ public static void main(String[] args) { int[] a = new int[1000000]; for(int i = 0; i < a.length; i++) { a[i] = (int) (Math.random()*Integer.MAX_VALUE); } System.out.println("Data generated"); testLinearSearch(a, Integer.MAX_VALUE, 2000); Arrays.sort(a); System.out.println("Data sorted"); testLinearSearch(a, Integer.MAX_VALUE, 20000); testBinarySearch(a, Integer.MAX_VALUE, 20000); } public static void testLinearSearch(int[] a, int maxValue, int reps) { long start = System.currentTimeMillis(); for(int i = 0; i < reps; i++) { int v = (int) (Math.random()*maxValue); search(a, v); } System.out.println("Time required for " + reps + " linear searches was " + (System.currentTimeMillis() - start) + " ms"); } public static void testBinarySearch(int[] a, int maxValue, int reps) { long start = System.currentTimeMillis(); for(int i = 0; i < reps; i++) { int v = (int) (Math.random()*maxValue); binarySearch(a, v); } System.out.println("Time required for " + reps + " binary searches was " + (System.currentTimeMillis() - start) + " ms"); } }