import edu.princeton.cs.algs4.StdDraw;
import edu.princeton.cs.algs4.StdOut;
import edu.princeton.cs.algs4.StdRandom;
import java.awt.*;
public class DoublingTest {
public static void main(String[]args){
//Print table of running times.
StdDraw.setPenRadius(0.01);
StdDraw.setPenColor(Color.RED);
//StdDraw.setXscale(0,8000);
StdDraw.setXscale(0,Math.log(8000));
//StdDraw.setYscale(0,100);
StdDraw.setYscale(Math.log(0.001),Math.log(100));
for (int N=250;N<=8000;N+=N){
//Print time for problem size N.
double time=DoublingTest.timeTrial(N);
//StdDraw.point(N,time);
StdDraw.point(Math.log(N),Math.log(time));
StdOut.printf("%7d %5.1f\n",N,time);
}
}
public static double timeTrial(int N){
//Time ThreeSum.count() for N random 6-digit ints.
int Max=1000000;
int []a=new int[N];
for (int i=0;i<N;i++)
a[i]= StdRandom.uniform(-Max, Max);
StopWatch timer=new StopWatch();
int cnt=ThreeSum.count(a);
return timer.elapsedTime();
}
}