演算法第四版環境配置
最近在學習演算法第四版的時候,遇到一些問題,花了好久才解決,現在把自己的解決辦法寫下來,幫助以後學習這本書的人
現在已經不需要stdlib-package.jar和algs4-package.jar等之類的jar包了 只需要去官網下載最新版的algs4.jar一個就夠了
還有就是如何使用args輸入的問題
比如如Random.java那個例子 點選run->configurations->Arguments 直接在Program arguments 中輸入 5 100.0 200.0 中間是一個空格 args[0]就是5
還有BinarySearch.java 書上的程式碼有問題 建議打直接去官網COPY 上面的連結那一頁就有
還有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存在的幾個數字
一定要在