为实现1.1.10的二分查找程序,尝试后成功两种方法:
1)完全通过Eclipse运行,参考 Eclipse直接运行算法第4版例子(重定向和读取指定路径文件)
补充:也可以照葫芦画瓢实现重定向输出,即在Common里面把Output File也勾选上,然后输入相应文件名(如 output.txt)即可
这种方法只是用了“Add External Jar”,把algs4.jar添加进去,没有手动设置环境变量(不过发现系统里面好像自己设了?)
2)完全通过命令行运行,最笨的方法,把需要用到的In.class StdIn.class StdOut.class三个文件从官网上下载下来,(应该也可以从algs4.jar解压得到)和自己编的BinarySearch.java文件,以及官网下载的 tinyW.txt, tinyT.txt文件全部放到同一个文件夹里,然后cmd编译、运行(使用的命令行和书上给出的一样,比如 java BinarySearch tinyW.txt < tinyT.txt实现重定向)
另,经尝试,发现Eclipse和cmd混用好像不太容易,会遇到很多诸如classpath等莫名其妙的问题,浪费时间。
另,书上P28给出的程序里面读白名单是这样的
int[] whitelist = In.readInts(args[0]);
编译的时候发现不行(说是该函数被弃用了),使用了官网上algs4.jar里面BinarySearch.java的另一个版本,可行:
In in = new In(args[0]);
int[] whitelist = in.readAllInts();