第一页
第一段讲述的是,写这本书的目的是什么,以及这本书适合的阅读人群。
第二段讲述的是算法在哪些领域中的应用。
第三段讲述的是作者开发了针对于堆栈、队列、以及其他抽象数据结构。接着我们去学习各种排序、检索算法。最后一章是其他资料的概述。
第二页
第一段讲述的是本书的特性。本书的目标是学习尽可能具有实际应用价值的算法。以及本书所提供了各种各样的算法和数据结构。
具体包括了以下几个部分:
算法,我们对于算法的描述都是基于完整的实现过程。而不是伪代码,所以我们的代码能够快速应用到实际环境中去。
数据类型,我们采用现代的基于数据抽象的编程风格,因此我们的算法和数据结构可以封装在一起。
应用,算法的广泛的应用范围。
科学的方法,我们开发了一套用于描述算法性能的数学模型,使用模型去提出假说,然后在实际环境中验证。
广泛的覆盖面,我们涵盖了抽象数据类型、排序算法、查找搜索、图算法、字符串算法。
最后一段讲的是我们的目标是介绍用到的最重要的一些算法。这些算法非常的巧妙,可以通过二行或者十几行的代码进行表示。
第三页
Booksite(与书籍配套的网站,免费使用),地址为algs4.cs.princeton.edu
在线简介:包括了overall structure和方便访问材料的link。
完整的实现过程:不仅包括了算法的代码,而且还涵盖了更高级(高效)的算法代码、练习作业对应的代码和实际application对应的代码。
练习和答案:包括了一些更深入的练习题。
动态可视化:算法的可视化表示。
课程的材料:包括了幻灯片、作业、测试数据、准备材料等等。
第四页
Use in curriculum
该门课程能够提高编程的经验和成熟度,并且能够提高定量推导、解决问题的能力。下面讲到了学习该门课程的前提是什么(熟悉现代的编程语言和计算机的基础特性)。
算法和数据结构都是用Java进行表示的。我们接受现代Java的抽象(包括泛型),同时拒绝一些深奥的不常用的语言特性。
参考书籍:《An Introduction to Programming in Java: An Interdisciplinary Approach》
《Sedgewick’s current Algorithms in C/C++/Java》第三版,这本书更适合于进阶的算法课程。