• Algs4-1.2.9使用Counter统计BinarySearch检查的key个数


    1.2.9修改BinarySearch(请见1.1.10.1节中的二分查找代码),使用Counter统计在有查找中被检查的键的总数并在查找全部结束后打印该值。提示:在main()中创建一个Counter对象并将它作为参数传递给rank()。
    答:
    图片
    BinarySearch Code:
    import java.util.Arrays;

    public class Test
    {
      public static void main(String[] args) 
      {
        int[] whitelist=In.readInts(args[0]);
        Arrays.sort(whitelist);
        Counter counterKey=new Counter("counterKey");
        while (!StdIn.isEmpty())
        {
            int key=StdIn.readInt();
            int indexOfWhite=rank(key,whitelist,counterKey);
        }
         StdOut.printf("BinarySearch check Key Counter is:%d ",counterKey.tally());
        }//end main
     
      public static int rank(int key,int[] a,Counter counterKey)
      {
          int lo=0;
          int hi=a.length-1;
          while(lo<=hi)
          {
              counterKey.increment();
              int mid=lo+(hi-lo)/2;
              if (key<a[mid]) hi=mid-1;
              else if(key>a[mid]) lo=mid+1;
              else return mid;
          }
          return -1;
      }
    }//end class Test


    ////////////////////////////////////
    Counter Code:
    public class Counter
    {
        private final String name;
        private int count;
        public Counter(String id)
        {
            name=id;
            count=0;
        }  
       
        public void increment()
        {
            count++;
        }
       
        public int tally()
        {
            return count;
        }
       
        public String ToString()
        {
            return count+ " " +name;
        }
       
        public static void main(String[] args)
        {
            Counter heads=new Counter("heads");
            Counter tails=new Counter("tails");
           
            heads.increment();
            heads.increment();
            tails.increment();
           
            StdOut.println(heads+" " + tails);
            StdOut.println(heads.tally() + tails.tally());
           
        }
    }
  • 相关阅读:
    Selenium webdriver+Java-------如何等待页面元素加载完成
    Jmeter入门实战(二)如何使用Jmeter的BeanShell断言,把响应数据中的JSON跟数据库中的记录对比
    Selenium2+Python--下拉选择用select
    Pycharm连接github
    Selenium2+Python--常用方法分类
    setUp和tearDown及setUpClass和tearDownClass的用法及区别
    Selenium2+Python--常用方法
    Selenium2+Python--操作Excel读写(使用xlrd模块实现)
    HashMap 重新认知
    想测试工具类执行main方法却被告知application没有加载怎么办
  • 原文地址:https://www.cnblogs.com/longjin2018/p/9848850.html
Copyright © 2020-2023  润新知