相關閱讀資料

演算法導論(SMA 5503)

因舊版課程無指定課堂作業與考試,因此統整所有作業、講義、考試內容合併列出。

    你可以通過在Amazon.com購物來支持麻省理工開放式課程。通過與Amazon.com的夥伴關係,麻省理工學院開放式課程提供課程所需書籍與Amazon.com的直接連結。點擊書名,直接從Amazon.com購書,麻省理工學院開放式課程就會收到購買金額10%的贊助,你的支持將有助於麻省理工學院繼續將其課程開放。下表提供課程的閱讀作業,這些閱讀資料都是來自Cormen, Thomas H.、Charles E. Leiserson、Ronald L. Rivest 和Clifford Stein所著的《演算法導論》第二版,Cambridge, MA: MIT Press,ISBN: 0262032937。除了指定課程閱讀,還有一份有用的參考文獻列表。

    Course readings.

    課程單元

    閱讀資料

    第一課

    課程細節 課程介紹 演算法分析、 插入排序、歸併排序

    1-2章

    復習一

    演算法正確性 Horner定則

     

    第二課

    漸進標記法 遞迴 置換、主方式

    3-4章,不包括 4.4小節

    第三課

    分治法:Strassen、費氏數列、多項式乘法

    28.2 和 30.1小節

    復習二

    遞迴、鬆散性質

     

    第四課

    快速排序、隨機演算法

    5.1-5.3小節 第7章

    復習三

    堆排序、動態集合、優先佇列

    第6章

    第五課

    線形時間排序:下限、計數排序、根排序

    8.1-8.3小節

    第六課

    順序統計、中位數

    第9章

    復習四

    中位數應用 桶式排序

    8.4小節

    第七課

    散列法、哈希函數

    11.1-11.3小節

    第八課

    一般散列,完美散列

    11.5小節

    復習五

    測試1復習

     

    測試1

    隨堂測試1

     

    復習六

    二元搜索樹、樹的遍曆

    12.1-12.3小節

    第九課

    二元排序樹與快速排序的關係 隨機二元排序樹的分析

    12.4小節

    第十課

    紅黑樹、反轉、插入、刪除

    第13章

    復習七

    2-3樹、B-樹

     

    第11課

    擴充資料結構、動態順序統計、區間樹

    第14章

    第12課

    跳過的章節

    分發跳過的章節 (英PDF)

    復習八

    範圍樹

     

    第13課

    平攤演算法、表的倍增、潛能法

    第17章

    第14課

    競爭分析、自組織列表

    Sleator, Daniel D.和 Robert E. Tarjan. 〈列表更新和編頁規則的平攤效率〉,《ACM通訊》28, no. 2 (1985年2月): 202-208.

    復習九

    競爭分析:滑雪鞋租賃、隨機競爭演算法

     

    第15課

    動態規劃、最大公共子序列

    第15章

    第16課

    貪心演算法、最小生成樹

    16.1-16.3 和 22.1小節 第23章

    第17課

    最短路徑I:屬性、Dijkstra演算法、廣度優先搜索

    22.2小節 第24章

    第18課

    最短路徑II:Bellman-Ford演算法、線形程式寫作、,差異限制

     

    復習十

    圖形搜索:深度優先搜索、拓撲排序、DAG最短路徑

    22.3-22.4小節

    第19課

    最短路徑III:所有頂點對間最短路徑演算法、矩陣乘法、Floyd-Warshall演算法、Johnson演算法

    第25章

    第20課

    測試2復習

     

    第21課

    道德規範,解答(強制參加)

     

    測試二

    隨堂測試2

     

    第22課

    高級論題

    分發動態多線程演算法(英PDF)

    第23課

    高級論題(續)

     

    復習11

    高級論題

     

    第24課

    高級論題(續)

    Demaine, Erik D.〈暫存遺忘演算法和資料結構〉,將要出現在《EEF暑期學校巨量資料集合講義》中,是《電腦科學講稿》的一卷。柏林,德國:Springer-Verlag.

    第25課

    高級論題(續) 討論後續的課程

     

     

    期末考試

     

     

    有用的參考文獻

    Aho, Alfred V.、John E. Hopcroft和Jeffrey D. Ullman.《電腦演算法的設計與分析》The Design and Analysis of Computer Algorithms.,Reading, MA: Addison-Wesley, 1974. ISBN: 0201000296.

     

    這是經典的書籍,但是它缺乏在網路流和線形規劃方面的內容,也沒有較近期發表的演算法。 ———.《資料結構和演算法》Data Structures and Algorithms.,Reading, MA: Addison-Wesley, 1983. ISBN: 0201000237.

     

    本書是對《電腦演算法的設計與分析》前六章的一個修訂初級版本。 Baase, Sara.《電腦演算法:設計與分析導論》Computer Algorithms: Introduction to Design and Analysis.,第二版,Reading, MA: Addison-Wesley, 1988. ISBN: 0201060353.

     

    一般的參考文獻,但說明有點簡略。 Bentley, Jon Louis《Pearls程式寫作》Programming Pearls.,Reading, MA: Addison-Wesley, 1986. ISBN: 0201103311.

     

    軟體工程的演算法設計技術應用。 ———.《更多Peals程式寫作:一個編碼者的自述》More Programming Pearls: Confessions of a Coder.,Reading, MA: Addison-Wesley, 1988. ISBN: 0201118890.

     

    更多軟體工程的演算法設計技術應用。 ———.《高效程式寫作》Writing Efficient Programs.. Englewood Cliffs, NJ: Prentice-Hall, 1982. ISBN: 0139702512.

     

    異常注重性能 Brassard, Gilles和Paul Bratley.《演算法:理論與實作》Algorithmics: Theory and Practice.,Englewood Cliffs, NJ: Prentice-Hall, 1988. ISBN: 0130232432.

    很好的例子和問題,關注於方法而不是特定的問題。 Chu

    ng, Kai Lai.《隨機過程中的基本機率理論》Elementary Probability Theory with Stochastic Processes.. New York, NY: Springer-Verlag, 1974. ISBN: 0387900969.

     

    對機率最直覺的介紹。 Even, Shimon.《圖形演算法》Graph Algorithms.. Rockville, MD: Computer Science Press, 1979. ISBN: 0914894218.

     

    對圖形演算法有很廣泛的介紹,包括網路流和平面圖。

    Feller, William.《機率理論及應用導論》An Introduction to Probability Theory and Its Applications.,第三版, 2卷. New York, NY: John Wiley & Sons, 1968, 1971. ISBN: 0471257087. ISBN: 0471257095.

     

    很出色的機率理論參考文獻。 Garey, Michael R.和David S. Johnson.《電腦與難解問題:NP完全理論指南》Computers and Intractibility: A Guide to the Theory of NP-Completeness.. San Francisco, CA: W. H. Freeman & Co., 1979. ISBN: 0716710447.

     

    NP完全問題的參考書,第二部分包含NP完全問題擴展列表和多項式時間演算法的參考。 Gonnet, Gaston H.《演算法和資料結構手冊》Handbook of Algorithms and Data Structures.,Reading, MA: Addison-Wesley, 1984. ISBN: 020114218X.

     

    Pascal 和 C編碼,比較實際的運行時間,並指出研究性文章中的分析。 Gusfield, Dan.《字串、樹與序列的演算法: 電腦科學和計算生物學》Algorithms on Strings, Trees, and Sequences: Computer Science and Computational Biology., Cambridge, UK: Cambridge University Press, 1997. ISBN: 0521585198.

     

    對字串和序列演算法的一般介紹。 Horowitz, Ellis和Sartaj Sahni.《電腦演算法基礎》Fundamentals of Computer Algorithms.,Potomac, MD: Computer Science Press, 1978. ISBN: 0914894226.

     

    很好的資料結構、動態規劃和分支界限法參考資料。 Kingston, Jeffrey H.《演算法和資料結構:設計、正確性和分析》Algorithms and Data Structures: Design, Correctness, Analysis.,Reading, MA: Addison-Wesley Publishing Co., 1991. ISBN: 0201417057.

     

    對資料結構進行了很好的介紹,有一章對演算法正確性進行了很好的講解。 Knuth, Donald E.《電腦程式設計的藝術》The Art of Computer Programming.,第三版, 3卷. Reading, MA: Addison-Wesley, 1997. ISBN: 0201896834. ISBN: 0201896842. ISBN: 0201896850.

     

    三卷如百科全書般的作品:(1) 基礎演算法、 (2) 半數值演算法和 (3) 排序與搜索。 Lawler, Eugene L.《組合最優化:網路和擬陣》Combinatorial Optimization: Networks and Matroids.,New York,NY: Holt, Rinehart, and Winston, 1976. ISBN: 0030848660.

     

    圖形演算法(密集圖形)、網路流和線形規劃,前幾章特別好。 Liu, Chung L.《組合數學導論》Introduction to Combinatorial Mathematics.,New York, NY: McGraw-Hill, 1968. ISBN: 0070381240.

     

    和電腦科學相關的組合數學,包含非常好的問題。 Manber, Udi.《演算法導論:創新的方法》Introduction to Algorithms: A Creative Approach.,Reading, MA: Addison-Wesley, 1989. ISBN: 0201120372.

     

    關注創新的初級讀物。 Mehlhorn, Kurt.《資料結構和演算法》Data Structures and Algorithms.,三卷,New York,NY: Springer-Verlag, 1984. ISBN: 038713302X. ISBN: 354013641X. ISBN: 0387136428.

     

    三卷: (1) 排序和搜索、(2) 圖形演算法和NP完全問題及(3) 多維搜索和計算幾何學。對基本論題和高級論題都有所涉及。 Niven, Ivan和Herbert S. Zuckerman.《數論導論》An Introduction to the Theory of Numbers.,第四版,New York, NY: John Wiley & Sons, 1980. ISBN: 0471028517.

     

    對數論的易讀介紹。 Papadimitriou, Christos H.和Kenneth Steiglitz.《組合最優化:演算法和複雜性》Combinatorial Optimization: Algorithms and Complexity.,Englewood Cliffs, NJ: Prentice-Hall, 1982. ISBN: 0131524623.

     

    線形規劃及其變種。 Press, William P.、Brian P. Flannery、Saul A. Teukolsky和William T. Vetterling.《C的數值處方:科學計算的藝術》Numerical Recipies in C: The Art of Scientific Computing.,Cambridge, UK: CambridgeUniversity Press, 1988. ISBN: 052135465X.

     

    數值演算法的編碼。 Reingold, Edwin M.、Jurg Nievergelt和Narsingh Deo.《組合演算法:理論與實作》Combinatorial Algorithms: Theory and Practice.,Englewood Cliffs, NJ: Prentice-Hall, 1977. ISBN: 013152447X.

     

    對遞迴關係和二元搜索樹進行了很好的介紹。 Sedgewick, Robert.《演算法》Algorithms.,第二版,Reading, MA: Addison-Wesley, 1988. ISBN: 0201066734.

     

    選題很廣的基礎性書籍,分析方面做得很好,但是有太多的數據。 Sipser, Michael.《計算理論導論》Introduction to the Theory of Computation,Boston, MA: PWS Publishing Company, 1997. ISBN: 053494728X.

     

    可計算性和複雜性理論方面很好的讀物。 Tarjan, Robert Endre.《資料結構和網路演算法》Data Structures and Network Algorithms.,Philadelphia, PA: Society for Industrial and Applied Mathematics, 1983. ISBN: 0898711878.

     

    涵蓋優異內容的進階讀物。