红皮的算法一书,内部代码的实现调用了作者写的一个包。为了运行书内代码,需要配置相应的环境。
准备
网站:https://algs4.cs.princeton.edu/code/
工具:IntelliJ IDEA 2019.3
Java版本:jdk8
Step 0
下载algs4.jar
Step 2
将jar
包移到某个目录下,笔者此处放置在:"C:Program Filesalgs4algs4.jar"
Step 3
配置系统变量,在CLASSPATH
后添加C:Program Filesalgs4algs4.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:UsersELIOsourceAlgorithms_4Esrc>javac Chapter1inarySearchTest.java
javac
编译出了一个.class
文件
C:UsersELIOsourceAlgorithms_4Esrc>java Chapter1.binarySearchTest tinyW.txt < tinyT.txt
java
运行时,利用文件重定向需要注意数据文件所属的目录,此处的两个.txt
都是位于src
下,与命令行的一致,故只需要文件名即可.
方法2: Edit Configurations
在IDEA
运行的地方,找到如下按钮:
点击Edit
: