红皮的算法一书,内部代码的实现调用了做者写的一个包。为了运行书内代码,须要配置相应的环境。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
: