《算法》(第四版)环境搭建
最近开封了买了很久都没读的《算法》(红色封面的),如果想运行里面的代码需要安装一个与本书搭配的jar包,因此有了这篇博客。
算法运行库的下载和配置
下载作者提供的运行库,下载地址:点我 点开页面之后使劲往下翻,翻到下图位置时,就知道点哪个下载了 嘿嘿嘿嘿
我们需要下载两个内容,一个是库,一个是测试的数据。库是algs4.jar,数据是algs4-data.zip。
- 在C盘建立目录
C:\Program Files\algs4
,然后把algs4.jar放在里面。(什么目录都可以) - 在CLASSPATH环境变量中,添加值
C:\Program Files\algs4\algs4.jar
(就是刚刚存放algs4.jar的路径)
注:如果你没有配置过CLASSPATH,请复制以下语句进CLASSPATH,使你的CLASSPATH变成这样
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;C:\Users\yeyun\alsgs4\algs4.jar
测试数据的使用
- 在idea中创建一个HelloWorld工程,选择你的JDK,下一步。
- 为项目添加jar包:File–>Project Strcuture–>Modules,然后点加号,点击,JARS…..,选择你的Jar包的位置,点确定。如图所示:
- 将测试数据解压到src目录下:
- 使用第一章第一节的测试代码:
package top.leafii.demo.day01;
import edu.princeton.cs.algs4.*;
import java.util.Arrays;
public class BinarySearch {
private 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 int rank(int key, int[] a) {
return indexOf(a, key);
}
public static void main(String[] args) {
// read the integers from a file
In in = new In(args[0]);
int[] whitelist = in.readAllInts();
// sort the array
Arrays.sort(whitelist);
// read integer key from standard input; print if not in whitelist
while (!StdIn.isEmpty()) {
int key = StdIn.readInt();
if (BinarySearch.indexOf(whitelist, key) == -1)
StdOut.println(key);
}
}
}
- 在BinarySearch类所在的文件夹右键,选择open in terminal,输入编译命令:
javac BinarySearch.java
- 在src文件夹上右键,点击open in terminal
- 在命令行中输入命令:
java top.leafii.demo.day01.BinarySearch tinyW.txt < tinyT.txt
(注意你的包名) - 成功了!运行结果如图所示: