紅皮的算法一書,內部代碼的實現調用了做者寫的一個包。爲了運行書內代碼,須要配置相應的環境。java
網站:https://algs4.cs.princeton.edu/code/算法
工具:IntelliJ IDEA 2019.3工具
Java版本:jdk8測試
下載algs4.jar
網站
將jar
包移到某個目錄下,筆者此處放置在:"C:\Program Files\algs4\algs4.jar"
命令行
配置系統變量,在CLASSPATH
後添加C:\Program Files\algs4\algs4.jar;
注意最後的分號不能掉(如圖)。code
以後重啓電腦一次。blog
配置IDEA
,打開File--->Project Structure
按照箭頭指示配置:get
此時項目工程的目錄以下:it
測試所用的源代碼在一個目錄下此處是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); } } }
編譯+運行
方法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
: