这个项目是我在阅读《算法》(第四版)一书中的积累,包括:笔记、习题解答、算法代码等。
项目使用的开发工具是 VSCode(目前已经切换到 IntelliJ IDEA),关于 VSCode 如何搭建 Java 开发环境可以参考我的个人博客,基于 Maven 构建。
《算法》(第四版)提供了配套的网站,网站上简要的介绍了书中的内容,提供了课后习题的解答。同时,还提供了书中的源码、工具库、测试素材等供下载使用。
书中提供了一个标准的输入输出库,里面包含很多实用的方法,主要是用来生成测试素材、统计信息等,使我们能更专注的实现和测试书中的算法。
我们可以直接在项目中引入 algs4.jar,这个库包含了书中的算法和标准输入输出库。
algs4.jar
托管在 Bintray 上,可以使用 Maven 或者 Gradle 导入依赖。此项目中通过 Maven 添加了依赖,pom.xml
中相应的配置如下:
<project>
<repositories>
<repository>
<id>bintray-algs4-maven</id>
<name>bintray</name>
<url>https://dl.bintray.com/algs4/maven</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>edu.princeton.cs</groupId>
<artifactId>algs4</artifactId>
<version>1.0.3</version>
</dependency>
</dependencies>
</project>
$ git clone https://github.com/hezhii/algorithm.git
$ cd algorithm
$ mvn compile
1.可以使用 maven 运行 main class
$ mvn exec:java -Dexec.mainClass="com.hezhou.algorithm.chapter1.section1.Ex03" -Dexec.args=" 1 2 1"
运行结果如下:
2.可以使用 java
命令运行,需要指定 classpath
$ java -cp target/classes com.hezhou.algorithm.chapter1.section1.Ex03
项目以章节为单位,包含该章节中的学习笔记、习题解答以及代码。其中,笔记和习题解答等在对应章节目录下的 README 中。笔记主要通过自问自答的方式体现,记录我不懂或者记不清的问题并自己作出解答。如果某个知识点我已经掌握并清晰的记得,则不会记录到笔记中。
- 第一章 基础