zoukankan      html  css  js  c++  java
  • Algs4-1.4.43大小可变的数组与链表

    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 ");
            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 ",timeOfArray/prevOfArray ,timeOfLink/prevOfLink,timeOfArray/timeOfLink);
               prevOfArray=timeOfArray;
               prevOfLink=timeOfLink;
           }
        }
    }

  • 相关阅读:
    OpenWrt编译系统(1)之make之前
    IoT设备WiFi配网及现状
    Linux系统时间、时区、夏令时杂谈
    串口通信概念整理
    socket编程进阶之路
    段错误
    gitlab将分支代码合并到master上
    dpkg 管理二进制包
    linux 命令关闭网络
    pwn之exp问题反馈和ASLR认知
  • 原文地址:https://www.cnblogs.com/longjin2018/p/9854580.html
Copyright © 2011-2022 走看看