《算法》(第四版)环境搭建

最近开封了买了很久都没读的《算法》(红色封面的),如果想运行里面的代码需要安装一个与本书搭配的jar包,因此有了这篇博客。

算法运行库的下载和配置

  1. 下载作者提供的运行库,下载地址:点我 点开页面之后使劲往下翻,翻到下图位置时,就知道点哪个下载了 嘿嘿嘿嘿

我们需要下载两个内容,一个是库,一个是测试的数据。库是algs4.jar,数据是algs4-data.zip。

  1. 在C盘建立目录C:\Program Files\algs4,然后把algs4.jar放在里面。(什么目录都可以)
  2. 在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

测试数据的使用

  1. 在idea中创建一个HelloWorld工程,选择你的JDK,下一步。
  2. 为项目添加jar包:File–>Project Strcuture–>Modules,然后点加号,点击,JARS…..,选择你的Jar包的位置,点确定。如图所示:

  1. 将测试数据解压到src目录下:

  1. 使用第一章第一节的测试代码:
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);
        }
    }
}
  1. 在BinarySearch类所在的文件夹右键,选择open in terminal,输入编译命令:javac BinarySearch.java
  2. 在src文件夹上右键,点击open in terminal

  1. 在命令行中输入命令:java top.leafii.demo.day01.BinarySearch tinyW.txt < tinyT.txt(注意你的包名)
  2. 成功了!运行结果如图所示: