准备攻读一遍算法第四版,结果卡在了第一个程序,找了很多方案,最后解决了
跟大家分享一下我的解决方案
准备
首先我们要下载算法四给我们准备的包文件和数据文件
包文件algs4.jar:
https://algs4.cs.princeton.edu/code/algs4.jar
数据文件algs4-data.zip:
https://algs4.cs.princeton.edu/code/algs4-data.zip
解压与环境配置
下载好文件之后
首先我们查看一下官方的解释文件
我们看到windows系统下我们要把jar包放在C:\users\username\alsgs4文件夹下
这步骤很重要,不然后序会报错说找不到alsgs.jar包!!!!
也就是我们自己的c盘文件下,看一下下面的图片,我打马赛克的地方就是你自己的windows名字
接下来我们要做的就是配置环境变量
变量的地址就是我们刚才放algs4jar包的地址
如果你们的环境变量中没有CLASSPATH,就自己新建一个变量名为CLASSPATH
创建idea文件进行配置
创建新的项目文件
然后将我们最开始下载的数据包文件algs4-data.zip解压到我们的src文件夹下
接下来我们就先编写测试代码,也就是算法中的二分搜索
package Test;
import edu.princeton.cs.algs4.In;
import edu.princeton.cs.algs4.StdIn;
import edu.princeton.cs.algs4.StdOut;
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);
}
}
}
使用terminal窗口运行文件
接下来我们要用到idea左下角的terminal窗口工具
首先我们先了解两条linux的命令
cd .. 返回上一级目录
cd 目标目录 切换目录到目标目录
接下来我们就要运行我们编写好的文件
我们先使用javac命令进行编译
!!!!!!接下来重要的一点
因为包的原因导致我们的java命令无法直接在包内运行否则会报错无法找到主类
我们要做的就是先切换到src目录下,在src目录中运行java命令进行执行
运行java命令
成功