import java.util.ArrayList; public class BenchPrioQ { public static void main ( String[] args ) { java.util.Random generator = new java.util.Random(); long seed = args.length > 0 ? Long.parseLong(args[0]) : System.currentTimeMillis(); int maxEntry = args.length > 1 ? Integer.parseInt(args[1]) : 100; PriorityQueue prioQue; // Constructed in the option loop int size = 10, maxSize = 250, incrSize = 10, run, nRuns = 100000; System.out.println ("Number of remove/enter," + nRuns); System.out.println ("Size,Array,Linked List,MinHeap"); for ( ; size <= maxSize; size += incrSize ) { long elapsed[] = new long[3]; int k; System.out.printf ("%4d", size); System.out.flush(); for ( int option = 0; option < 3; option++ ) { elapsed[option] = System.currentTimeMillis(); // Construct the appropriate class object switch ( option ) { case 0: prioQue = new SortedArrayPQ(); break; case 1: prioQue = new SortedLinkedPQ(); break; default: prioQue = new MinHeap(); break; } generator.setSeed(seed); for ( k = 0; k < size; k++ ) prioQue.append( generator.nextInt(maxEntry) ); prioQue.correct(); for ( run = 0; run < nRuns; run++ ) { prioQue.remove(); prioQue.enter( generator.nextInt(maxEntry) ); } prioQue.clear(); elapsed[option] = System.currentTimeMillis() - elapsed[option]; } // end for option for ( k = 0; k < 3; k++ ) System.out.printf (", %d", elapsed[k]); System.out.println(); System.out.flush(); } // end for size } // end main } // end class BenchPrioQ