-
Notifications
You must be signed in to change notification settings - Fork 756
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
302b6e6
commit ac6e987
Showing
3 changed files
with
82 additions
and
60 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,26 +3,96 @@ Elementary Algorithms | |
|
||
Edition: 0.6180339887498949 | ||
|
||
2018, Aug, 25 | ||
2020/10 | ||
|
||
AlgoXY is an open book about elementary | ||
algorithms and data structures. This book doesn't only focus on | ||
imperative (or procedural) approach, but also includes purely functional | ||
algorithms and data structures. | ||
This book introduces about elementary algorithms and data structure. It includes side-by-side comparison about purely functional realization and their imperative counterpart. | ||
|
||
The PDF version in English can be downloaded from [github](https://github.com/liuxinyu95/AlgoXY/releases/download/v0.6180333/elementary-algorithms.pdf). | ||
<img src="https://file.ituring.com.cn/ScreenShow/01004d1e213e7f854b92" width="400"> | ||
|
||
The book in Chinese was published. | ||
http://www.ituring.com.cn/book/1907 | ||
Contents | ||
-------- | ||
|
||
[Errata and Exercise](https://github.com/liuxinyu95/AlgoXY/wiki/Preface) can be found in github WIKI. | ||
The book can be downloaded in English ([EN](https://github.com/liuxinyu95/AlgoXY/releases/download/v0.6180333/elementary-algorithms.pdf)). The book in Chinese ([中文](http://www.ituring.com.cn/book/1907)) was published. I recently switched my focus to the Mathematics of programming, the new book is also available in ([github](https://github.com/liuxinyu95/unplugged)) | ||
|
||
Compared to the pdf, the published version contains many important corrections to the contents, equations, and figures. | ||
|
||
The original version provides examples in Haskell, C/C++, Python, and Scheme. I started A new branch jvm to provide examples in Java and Scala. | ||
- Preface | ||
- Chapter 1, Binary Search Tree, the 'hello world' data structure; | ||
- Chapter 2, The evolution of insertion sort; | ||
- Chapter 3, Red-black tree, not so complex as it was thought; | ||
- Chapter 4, AVL tree; | ||
- Chapter 5, Radix tree, Trie and Prefix Tree; | ||
- Chapter 6, B-Trees; | ||
- Chapter 7, Binary Heaps; | ||
- Chapter 8, From grape to the world cup, the evolution of selection sort; | ||
- Chapter 9, Binomial heap, Fibonacci heap, and pairing heap; | ||
- Chapter 10, Queue, not so simple as it was thought; | ||
- Chapter 11, Sequences, The last brick; | ||
- Chapter 12, Divide and conquer, Quick sort vs. Merge sort | ||
- Chapter 13, Searching | ||
- Appendix | ||
|
||
Install | ||
-------- | ||
|
||
To build the book in PDF format from the sources, you need | ||
the following software pre-installed. | ||
|
||
- TeXLive, The book is built with XeLaTeX, a Unicode friendly version of TeX; | ||
|
||
### Install TeXLive | ||
|
||
In Debian/Ubuntu like Linux environment, do **NOT** install the TeXLive through apt-get. Go to TeXLive [official site](https://tug.org/texlive/) to download the setup script. | ||
|
||
```bash | ||
$ wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl.zip | ||
$ unzip install-tl.zip | ||
$ cd install-tl | ||
$ sudo ./install-tl -gui text -repository http://mirror.ctan.org/systems/texlive/tlnet | ||
``` | ||
|
||
In Windows, TeXLive provide a [gui based installer](https://tug.org/texlive/), in Mac OS X, there's a [MacTeX](https://www.tug.org/mactex/). | ||
|
||
### Install ImageMagick and Graphviz | ||
|
||
```bash | ||
$ sudo apt-get install imagemagick | ||
$ sudo apt-get install graphviz | ||
``` | ||
|
||
For Windows and Mac OS X installer, ImageMagick can be download through http://www.imagemagick.org; Graphviz can be download from: http://graphviz.org | ||
|
||
### Others | ||
|
||
You need the GNU make tool, in Debian/Ubuntu like Linux, it can be installed through the apt-get command: | ||
|
||
```bash | ||
$ sudo apt-get install build-essential | ||
``` | ||
|
||
In Windows, you can install the MSYS for it. In Mac OS X, please install the developer tool from this command line: | ||
|
||
```bash | ||
$ xcode-select --install | ||
``` | ||
|
||
### Build the book PDF | ||
|
||
enter the folder contains the book TeX manuscript, run | ||
|
||
```bash | ||
$ make | ||
``` | ||
|
||
This will generate algoxy-en.pdf and algoxy-zh-cn.pdf. If you only need the Chinese version for example, you can run `make cn` instead. | ||
|
||
### Other branches | ||
|
||
The other two branches, `zh-cn' and `jvm' are deprecated. Please do NOT checkout/track them. | ||
|
||
-- | ||
|
||
Larry LIU Xinyu | ||
LIU Xinyu | ||
|
||
[email protected] | ||
|
||
``Cogito ergo sum'' |