最近在学习算法第四版的时候,遇到一些问题,花了好久才解决,现在把自己的解决办法写下来,帮助以后学习这本书的人
现在已经不需要stdlib-package.jar和algs4-package.jar等之类的jar包了 只需要去官网下载最新版的algs4.jar一个就够了
点击打开链接http://algs4.cs.princeton.edu/code/ 点击下载就可以
还有就是如何使用args输入的问题
比如如Random.java那个例子 点击run->configurations->Arguments 直接在Program arguments 中输入 5 100.0 200.0 中间是一个空格 args[0]就是5
还有BinarySearch.java 书上的代码有问题 建议打直接去官网COPY 上面的链接那一页就有BinarySearch.java 后面是tinyW.txt和tinyT.txt
还有args的问题 看我的代码吧 点击run->configurations->Arguments 直接在Program arguments 中输入 白名单文件名 tinyW.txt
package programming_Modeling_1_1;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import edu.princeton.cs.algs4.In;
import edu.princeton.cs.algs4.StdIn;
import edu.princeton.cs.algs4.StdOut;
public class BinarySearch {
public static int indexOf(int[] a, int key) {
int lo = 0;
int hi = a.length - 1;
while (lo <= hi) {
// Key is in a[lo..hi] or not present.
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) {
int[] whitelist=In.readInts(args[0]);
Scanner stdin=null;
try {
stdin=new Scanner(new File("tinyT.txt"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Arrays.sort(whitelist);
while(stdin.hasNext()){
int key=stdin.nextInt();
if(BinarySearch.indexOf(whitelist, key) == -1){
StdOut.println(key);
}
}
}
}
输出结果为 50 99 13
这样做应该就没问题了 其中tinyW.txt就是白名单文件 过滤掉所有tinyT中出现而白名单文件也存在的数字 最后输出的是tinyW不存在的tinyT存在的几个数字
一定要在