第一頁
? ? ? ? ? 第一段講述的是,寫這本書的目的是什么,以及這本書適合的閱讀人群。
? ? ? ? ? 第二段講述的是算法在哪些領域中的應用。
? ? ? ? ? 第三段講述的是作者開發了針對于堆棧、隊列、以及其他抽象數據結構。接著我們去學習各種排序、檢索算法。最后一章是其他資料的概述。
第二頁
? ? ? ? ? 第一段講述的是本書的特性。本書的目標是學習盡可能具有實際應用價值的算法。以及本書所提供了各種各樣的算法和數據結構。
? ? ? ? ? 具體包括了以下幾個部分:
? ? ? ? ? 算法,我們對于算法的描述都是基于完整的實現過程。而不是偽代碼,所以我們的代碼能夠快速應用到實際環境中去。
? ? ? ? ? 數據類型,我們采用現代的基于數據抽象的編程風格,因此我們的算法和數據結構可以封裝在一起。
? ? ? ? ? 應用,算法的廣泛的應用范圍。
? ? ? ? ? 科學的方法,我們開發了一套用于描述算法性能的數學模型,使用模型去提出假說,然后在實際環境中驗證。
? ? ? ? ? 廣泛的覆蓋面,我們涵蓋了抽象數據類型、排序算法、查找搜索、圖算法、字符串算法。
? ? ? ? ? 最后一段講的是我們的目標是介紹用到的最重要的一些算法。這些算法非常的巧妙,可以通過二行或者十幾行的代碼進行表示。
第三頁
? ? ? ? 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》第三版,這本書更適合于進階的算法課程。