import java.util.Comparator; import java.util.Random; import java.util.Vector; import rebelsky.io.Pen; import rebelsky.exam3.Quicksorter; import rebelsky.sorting.IncreasingIntegerComparator; /** * Run Quicksort on a variety of input sizes to determine its * likely running time. * * @author Samuel A. Rebelsky * @version 1.0 of November 2004 */ public class CountQS { static Random rng; public static void main(String[] args) throws Exception { rng = new Random(); Pen pen = new Pen(); Quicksorter qs = new Quicksorter(); Comparator c = new IncreasingIntegerComparator(); // Print the header pen.println("n,steps"); // Step through a variety of sizes for (int size = 0; size <= 100; size += 5) { // Do six tests for each size. for (int test = 0; test < 6; ++test) { Vector vec = randomVector(size); // pen.println(" Original: " + vec); qs.resetSteps(); qs.sort(vec, c); // pen.println(" Sorted: " + vec); pen.println(size + "," + qs.getSteps()); } // for } // for } // main(String[]) /** * Build a size-n vector of Integers "randomly" selected * from the range 0-100. */ public static Vector randomVector(int n) { Vector vec = new Vector(); vec.ensureCapacity(n); for (int i = 0; i < n; i++) vec.add(new Integer(rng.nextInt(101))); return vec; } // randomVector(int) } // class CountQS