博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Algs4-1.4.43大小可变的数组与链表
阅读量:6302 次
发布时间:2019-06-22

本文共 1170 字,大约阅读时间需要 3 分钟。

1.4.43大小可变的数组与链表。通过实验验证对于栈来说基于大小可变的数组的实现快于基于链表的实现的猜想(请见练习1.4.35和练习1.4.36)。为此实现另一个版本的Doublingratio,计算两个程序的运行时间的比例。
答:
图片
public class E1d4d43
{
    public static double timeTrialArray(int N)
    {
       ResizingArrayStack<Integer> s=new ResizingArrayStack<Integer>();
       Stopwatch timer=new Stopwatch();
        for (int i=0;i<N;i++)
            s.push(i);
        for (int i=0;i<N;i++)
            s.pop();
       
        return timer.elapsedTime();
    }
   
        public static double timeTrialLink(int N)
    {
       Stack<Integer> s=new Stack<Integer>();
       Stopwatch timer=new Stopwatch();
        for (int i=0;i<N;i++)
            s.push(i);
        for (int i=0;i<N;i++)
            s.pop();
       
        return timer.elapsedTime();
    }
       
   
    public static void main(String[] args)
    {
      
       double prevOfArray=timeTrialArray(125);
       double prevOfLink=timeTrialLink(125);
       StdOut.printf("      N  timeOfArray   timeOfLink   ArrayRatio    LinkRatio   Array/LinkRatio\n");
        for (int N=250;true;N+=N)
       {
           double timeOfArray=timeTrialArray(N);
           double timeOfLink=timeTrialLink(N);
           StdOut.printf("%7d %9.1f  %9.1f  ",N,timeOfArray,timeOfLink);
           StdOut.printf("%9.1f  %12.1f  %12.1f \n",timeOfArray/prevOfArray ,timeOfLink/prevOfLink,timeOfArray/timeOfLink);
           prevOfArray=timeOfArray;
           prevOfLink=timeOfLink;
       }
    }
}

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

你可能感兴趣的文章
Git 2.5增加了工作树、改进了三角工作流、性能等诸多方面
查看>>
Swift 5将强制执行内存独占访问
查看>>
中台之上(二):为什么业务架构存在20多年,技术人员还觉得它有点虚?
查看>>
深度揭秘腾讯云低功耗广域物联网LPWAN 技术及应用
查看>>
与Jeff Sutherland谈敏捷领导力
查看>>
More than React(四)HTML也可以静态编译?
查看>>
React Native最佳学习模版- F8 App开源了
查看>>
云服务正在吞噬世界!
查看>>
阅读Android源码的一些姿势
查看>>
Web语义化标准解读
查看>>
一份代码构建移动、桌面、Web全平台应用
查看>>
高性能 Lua 技巧(译)
查看>>
区分指针、变量名、指针所指向的内存
查看>>
异步编程的世界
查看>>
最近话题火爆的四件事你知道不?
查看>>
SpringBoot整合MyBatis
查看>>
云计算产业如何率先推行信用管理?
查看>>
Android 类库书签更新(一)
查看>>
Unity3D Input按键系统
查看>>
简单的一条SQL,不简单的做事思维 NOT IN 、NOT EXISTS、LEFT JOIN用法差别 ...
查看>>