下载资源
算法4书中代码的运行。算法书中的java代码,如果是非java开发的朋友会有些生疏。想要学习书书中的思想,首先需要把代码运行起来。
https://algs4.cs.princeton.edu/code/
- 下载java代码
- 下载测试数据
- 下载jar包。
- IntelliJ :添加_algs4.jar到项目中, _File → Project Structure → Libraries → New Project Library
- Eclipse :添加_algs4.jar到项目中, _Project → Properties → Java Build Path → Libaries → Add External JARs and select algs4.jar
百度云获取所有资源:链接:https://pan.baidu.com/s/1YEGlTfVOS49ugxPYirkGXQ 提取码:1234
安装环境
下载jdk
想要运行java代码,首先需要安装JDK。选择一个对应系统的安装包安装即可。安装jdk只要下一步下一步就行,但是这里安装的路径是需要记住的,等下配置系统环境变量需要使用。
比如路径:H:\Program Files\Java\jdk-18.0.1.1。
安装好的jdk没有jre文件夹,需要生成该文件。 运行命令:./bin/jlink.exe —module-path jmods —add-modules java.desktop —output jre
设置环境变量
以window10系统为例。其它系统可以搜索网上资源。
从windows控制台进入设置面板,点击系统,选择最下面的关于,然后选择高级系统设置,打开环境变量设置。
- 设置JAVA_HOME, 并设置变量值,该值就是安装jdk的路径。
- 设置Pth变量的值:添加
- %JAVA_HOME%bin
- %JAVA_HOME%jre\bin
这里%后没有\,是因为在JAVA_HOME配置的变量值中已经包括了\符号,如果JAVA_HOME值中没有,是需要添加一下\ 符号。
将algs4.jar添加到环境变量中
将jar包添加的CLASS_PATH环境变量中。
如果jdk版本大于10时不需要配置CLASS_PATH的其他属性。但是为了让algs4.jar能在整个系统环境下生效,需要添加CLASS_PATH参数。
安装eclipse开发工具
下载eclipse 并安装。下载安装包,只需要下一步执行安装。
执行代码
创建项目
new Project > Java Project
next
添加java代码
将下载好的main代码中的edu文件夹,添加到src下面。添加好可以刷新F5看下结构
关于为什么从edu目录开始复制?因为代码中的
package edu.princeton.cs.algs4;
是这样定义的,如果是其他路径会有报错提示。
这样就可以运行java代码。
开始可以运行 Date.java
进行测试
添加algs4-data 测试数据
将 algs4-data 的内容解压出来,并添加到src目录下。
执行关联资源的java
书中的二分查找算法,使用了 java Binary tinyW.txt < tinyT.txt
命令,这个是在命令行直接通过 < 设置2个文件, “ < ” , “ > “ 这是重定向的提示符。
这行命令的意思是:从tinyT.txt文件中读取一系列的数值,运行在BinarySearch这个类的main方法上,tinyW.txt作为args[]数值的第一个参数传递进去。
在命令行可以这样设置,那么在Eclipse中怎么操作呢?
在Eclipse中重定向输入的配置
首先执行 Run -> Run Configurations;
设置入参 ${workspace_loc:/testalgs/src/algs4-data/tinyW.txt}
设置重定向文件${workspace_loc:/testalgs/src/algs4-data/tinyT.txt}
然后就可以对BinarySearch.java文件直接指向run命令。输出结果
在项目中添加jra包【不推荐】
如果没有设置全局环境的CLASS_PATH环境变量,那么就需要在项目中引入jra包。
项目中设置和全局设置各有利弊,看自己选择。
打开build path设置
添加Add External JARs…
项目中添加jar包后,会引起冲突,要重新调整edu包中的名称。
需要重新调整package包的名称
然而:由于JDK9及以上版本引入了模块,所以在default package建立一个单独运行的类,就无法通过编辑。algs4.jar包中包含了个TestAlgs4.class,放在default package中。执行时会引起错误。
这个错误还没找到解决办法,要么只能从新修改algs4.jar包。
所以这里在项目中引入jar包的方案不推荐使用。