zoukankan      html  css  js  c++  java
  • 算法-第四版-练习1.2.9解答

    修改BinarySearch,使用Counter统计大有查找中被检查的键的总数并在查找全部结束后打印该值。


    /**
     * Description : 
     * Author      : mn@furzoom.com
     * Date        : Sep 26, 2016 4:49:49 PM
     * Copyright (c) 2013-2016, http://furzoom.com All Rights Reserved.
     */
    package com.furzoom.lab.algs.ch102;
    
    import java.util.Arrays;
    
    import edu.princeton.cs.algs4.Counter;
    import edu.princeton.cs.algs4.In;
    import edu.princeton.cs.algs4.StdIn;
    import edu.princeton.cs.algs4.StdOut;
    
    /**
     * ClassName    : E10209 <br>
     * Function     : TODO ADD FUNCTION. <br>
     * date         : Sep 26, 2016 4:49:49 PM <br>
     * 
     * @version 
     */
    public class E10209
    {
        public static int rank(int key, int[] a, Counter counter)
        {
            int lo = 0;
            int hi = a.length - 1;
            while (lo <= hi)
            {
                counter.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;
        }
        
        public static void main(String[] args)
        {
            In in = new In(args[0]);
            int key = Integer.parseInt(args[1]);
            int[] whitelist = in.readAllInts();
            Counter c = new Counter("binary search");
            
            Arrays.sort(whitelist);
            rank(key, whitelist, c);
            System.out.println(c);
        }
    
    }
    

    结果:

    D:proj>java -cp ".;../lib/algs4.jar" com
    .furzoom.lab.algs.ch102.E10209 com/furzoom/lab/algs/ch101/tinyW.txt 100
    5 binary search
    


    算法-第四版-1.2 数据抽象-习题索引汇总

    算法-第四版习题索引汇总

    作者:马 岩Furzoom) (http://www.cnblogs.com/furzoom/
    版权声明:本文的版权归作者与博客园共同所有。转载时请在明显地方注明本文的详细链接,未经作者同意请不要删除此段声明,感谢您为保护知识产权做出的贡献。
  • 相关阅读:
    C++中的异常
    Hadoop YARN介绍
    js处理层级数据结构的一些总结
    Python数据结构
    Python的编码风格
    Python流程控制
    java中面试可能会问的问题
    深度学习
    Pescal Triangle Two
    Pascal Triangle
  • 原文地址:https://www.cnblogs.com/furzoom/p/7710221.html
Copyright © 2011-2022 走看看