zoukankan      html  css  js  c++  java
  • Algs4-2.1.33分布图

     2.1.33分布图。对于你为练习2.1.33给出的测试用例,在一个无穷循环中调用sort()方法将由第三个命令行参数指定大小的数组排序,记录每次排序的用时并使用StdDraw在图上画出所有平均运行时间,应该能够得到一张运行时间的分布图。
    1)插入排序1000个元素
    图片
    2)插入排序10000个元素
    图片
    3)选择排序1000个元素
    图片
    4)选择排序10000个元素
    图片
    5)希尔排序1000个元素
    图片
    6)希尔排序10000个元素
    图片
    7)希尔排序100000个元素
    图片
    public class E2d1d33
    {
      
        public static double time (String alg,Double[] a)
        {
            Stopwatch timer =new Stopwatch();
            if(alg.equals("Insertion")) Insertion.sort(a);
            if(alg.equals("Selection")) Selection.sort(a);
            if(alg.equals("Shell")) Shell.sort(a);
          // if(alg.equals("Merge")) Merge.sort(a);
          //  if(alg.equals("Quick")) Quick.sort(a);
          //  if(alg.equals("Heap")) Heap.sort(a);
            return timer.elapsedTime();
        }
       
        public static double timeRandomInput(String alg,int N,int T)
        {
            double total =0.0;
            Double[] a=new Double[N];
            for (int t=0;t<T;t++)
            {
                for (int i=0;i<N;i++)
                    a[i]=StdRandom.uniform();
                total+=time(alg,a);
            }
            return total;
        }//end timeRandomInput


       
        public static void main(String[] args)
        {
            String alg=args[0];
            Integer N=Integer.parseInt(args[1]);
            Integer T=0;
            double timeTotal=0;
            //
            StdDraw.setXscale(0.0,1000);
            StdDraw.setYscale(0.0,20);
            StdDraw.setPenColor(StdDraw.RED);
            StdDraw.setPenRadius(0.005);
            //
            while (true)
            {
             T++;
             timeTotal =timeTotal+timeRandomInput(alg,N,1);
             StdDraw.point(T*1.0,timeTotal/T);
            }
        }
    }

  • 相关阅读:
    Java中Comparable与Comparator的区别
    LeetCode[5] 最长的回文子串
    LeetCode[3] Longest Substring Without Repeating Characters
    LeetCode 7. Reverse Integer
    统计单词出现的次数
    System.arraycopy()和Arrays.copyOf()的区别
    SyncToy
    查看端口占用及进程号
    TCP协议
    python 的日志logging模块学习
  • 原文地址:https://www.cnblogs.com/longjin2018/p/9860061.html
Copyright © 2011-2022 走看看