紅皮的算法一書,內部代碼的實現調用了作者寫的一個包。為了運行書內代碼,需要配置相應的環境。
准備
網站:https://algs4.cs.princeton.edu/code/
工具:IntelliJ IDEA 2019.3
Java版本:jdk8
Step 0
下載algs4.jar
Step 2
將jar
包移到某個目錄下,筆者此處放置在:"C:\Program Files\algs4\algs4.jar"
Step 3
配置系統變量,在CLASSPATH
后添加C:\Program Files\algs4\algs4.jar;
注意最后的分號不能掉(如圖)。
之后重啟電腦一次。
Step 4
配置IDEA
,打開File--->Project Structure
按照箭頭指示配置:
Step 5
此時項目工程的目錄如下:
測試所用的源代碼在一個目錄下此處是Chapter1
下.測試所用的數據在src
中與Chapter1
並列,
測試所用代碼如下:
package Chapter1;
import edu.princeton.cs.algs4.In;
import edu.princeton.cs.algs4.StdIn;
import edu.princeton.cs.algs4.StdOut;
import java.util.Arrays;
/**
* Created by Elio Yang on 2020/6/28.
*/
public class binarySearchTest {
public static int rank(int key,int[] a){
int lo=0;
int hi=a.length-1;
while (lo<=hi){
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[] arraylist= new In(args[0]).readAllInts();
Arrays.sort(arraylist);
while (!StdIn.isEmpty()){
int key=StdIn.readInt();
if (rank(key,arraylist)==-1)
StdOut.println(key);
}
}
}
Step 6
編譯+運行
方法1: Terminal
方法如下圖所示:一定要注意文件的位置
C:\Users\ELIO\source\Algorithms_4E\src>javac Chapter1\binarySearchTest.java
javac
編譯出了一個.class
文件
C:\Users\ELIO\source\Algorithms_4E\src>java Chapter1.binarySearchTest tinyW.txt < tinyT.txt
java
運行時,利用文件重定向需要注意數據文件所屬的目錄,此處的兩個.txt
都是位於src
下,與命令行的一致,故只需要文件名即可.
方法2: Edit Configurations
在IDEA
運行的地方,找到如下按鈕:
點擊Edit
: