01 / 導讀
導讀
適合誰
適合程式設計和資料結構之後的本科演算法課,作者明確並非首次演算法啟蒙。重點是持續練習設計、解釋正確性,並把正確性論證與執行時間分析分開。
需要的基礎
先修離散數學、歸納、遞迴和基本資料結構,複習圖、漸近記號與遞推式;本書不從頭講佇列、雜湊表或平衡樹,應先補齊相關基礎。
涵蓋內容
從遞迴、回溯進入動態規劃、貪心、圖遍歷、生成樹、最短路徑、流、割和NP困難性。作者站另附擴充套件講義,但不能把它們全部視為主書內容。
如何使用
寫程式碼前明確輸入輸出,找一個能暴露錯誤直覺的小例子;精確定義遞迴子問題或貪心選擇,分別完成正確性證明與複雜度分析。用習題比較兩種路線,為失敗的改法構造反例,最後才實現並用小規模窮舉核對。
版本與來源
作者完整第一版為2019年6月、472頁,主書CC BY 4.0;同頁其他講義採用較嚴格的CC BY-NC-SA 4.0,再利用須區分具體檔案,不能混用許可。