《算法概論》在普通高等教育十四五規(guī)劃教材精神的指導下編寫而成。
算法是計算機科學的核心問題之一,也是計算機科學與技術專業(yè)本科及研究生的一門重要的專業(yè)基礎課。
《算法概論》內(nèi)容是研究計算機及相關領域中的一些非數(shù)值計算的常用算法。通過學習,使學生掌握設計算法的常用方法,以便去解決計算機科學與工程領域中較為復雜的實際問題。此外,對分析算法、估計算法的時間與空間復雜性也做一些了解,但不作為重點。
算法知識理論性較強而且比較抽象,涉及的范圍廣,比較復雜,這些都給學習和理解造成困難。該書的編寫條理清晰,內(nèi)容翔實,邏輯嚴謹,深入淺出,利于算法知識的教與學。此外,書中的算法均用自然語言來表述其思路,再以類C語言來描述,程序結構清楚,構思精巧,對程序代碼做了必要的注釋,力求簡潔明了、通俗易懂。
第1章 算法概述
1.1 算法概念
1.1.1 什么是算法
1.1.2 為什么學習算法
1.1.3 抽象表達算法機制
1.2 算法的復雜度
1.2.1 算法三性態(tài)
1.2.2 算法復雜度
1.3 算法設計與分析的步驟
1.3.1 利用算法進行問題求解的過程
1.3.2 如何設計算法
1.3.3 如何表示算法
1.3.4 如何確認算法
1.3.5 如何分析算法
1.4 算法描述語言簡介
1.4.1 C語言中的標準數(shù)據(jù)類型
1.4.2 C語言中的運算符
1.4.3 C語言中的語句簡介
小結
習題1
第2章 遞歸技術
2.1 遞歸技術概述
2.1.1 什么是遞歸技術
2.1.2 遞歸技術的基本思想
2.2 漢諾塔問題
2.3 遞歸方程的建立與求解
2.3.1 遞推法
2.3.2 生成函數(shù)法
2.3.3 特征方程法
2.3.4 數(shù)學歸納法
2.3.5 不規(guī)則解法
2.4 遞歸消除
2.4.1 簡單遞歸消除
2.4.2 基于棧的遞歸消除
小結
習題2
第3章 分治法
3.1 分治法概述
3.1.1 什么是分治法
3.1.2 分治法的基本思想
3.1.3 分治法的基本要素
3.2 二分檢索技術
3.2.1 二分檢索算法描述
3.2.2 壞情況分析
3.2.3 平均復雜度分析
3.2.4 以比較為基礎的檢索時間下界
3.3 查找第k個小元素
3.3.1 分劃點m的選取
3.3.2 隨機選擇算法
3.4 分治乘法
3.4.1 大整數(shù)相乘
3.4.2 多項式乘法
3.4.3 矩陣乘法
3.5 棋盤覆蓋
3.6 分治合并排序
3.6.1 什么是合并
3.6.2 合并排序的基本思想
……
第4章 貪心法
第5章 動態(tài)規(guī)劃
第6章 回溯法
第7章 分支限界法
第8章 概率算法
第9章 NP問題
第10章 近似算法
第11章 加密算法
第12章 并行算法
第13章 上機實訓
參考文獻
參考答案