当前位置: 首页 > news >正文

Algs4-2.1.32运行时间曲线图

 2.1.32运行时间曲线图。编写一个测试用例,使用StdDraw在各种不同规模的随机输入下将算法的平均运行时间绘制成一张曲线图。可能需要添加一两个命令行参数,请尽量设计一个实用的工具。
图片
1)插入排序
图片
2)选择排序
图片
3)Shell排序
图片
public class E2d1d32
{
    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=Integer.parseInt(args[2]);
        //
        StdDraw.setXscale(0.0,N*10.0);
        StdDraw.setYscale(0.0,500);
        StdDraw.setPenColor(StdDraw.RED);
        StdDraw.setPenRadius(0.01);
        //
        for (int n=10;n<=N;n=1000+n)
        {
          //
         double time=timeRandomInput(alg,n,T);
         StdDraw.point(n*1.0,time/T);
        }
        StdOut.println("The End");
    }
}

转载于:https://www.cnblogs.com/longjin2018/p/9860060.html

相关文章:

  • BZOJ 3812 : 主旋律
  • 《JavaScript实用效果整理》系列分享专栏
  • 浅谈web中前端模板引擎的使用
  • pytorch实战(2)-----回归例子
  • 柔宇科技发售可折叠柔性屏手机 平板与手机从此二合一
  • 浅析宽带接入技术
  • 一个网工的Linux学习过程
  • 数据结构(算法)-图(最短距离Dijkstra)
  • Jessica Kerr:高绩效团队简史
  • Windows操作系统查看电脑开关机记录
  • 实现图元及属性的算法---椭圆生成算法
  • 大快搜索数据爬虫技术实例安装教学篇
  • 解决项目不编译4大clean
  • 迭代器 /生成器 yield
  • mysql表与表之间的关系
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • Android组件 - 收藏集 - 掘金
  • Angular6错误 Service: No provider for Renderer2
  • Django 博客开发教程 16 - 统计文章阅读量
  • docker-consul
  • ES学习笔记(12)--Symbol
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • Java比较器对数组,集合排序
  • Js基础——数据类型之Null和Undefined
  • js如何打印object对象
  • Mocha测试初探
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • webgl (原生)基础入门指南【一】
  • 对JS继承的一点思考
  • 构建工具 - 收藏集 - 掘金
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 和 || 运算
  • 老板让我十分钟上手nx-admin
  • 前嗅ForeSpider采集配置界面介绍
  • 前言-如何学习区块链
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 山寨一个 Promise
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 新手搭建网站的主要流程
  • 用mpvue开发微信小程序
  • 由插件封装引出的一丢丢思考
  • 转载:[译] 内容加速黑科技趣谈
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • (09)Hive——CTE 公共表达式
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (LeetCode 49)Anagrams
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • ***监测系统的构建(chkrootkit )
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET 回调、接口回调、 委托
  • .Net多线程总结
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .net快速开发框架源码分享