算法設(shè)計(jì)與分析
定 價(jià):¥38
中 教 價(jià):¥29.26 (7.70折)
庫(kù) 存 數(shù): 0
叢 書 名:卓越工程師培養(yǎng)計(jì)劃“十二五”規(guī)劃教材
《算法設(shè)計(jì)與分析:C++語(yǔ)言描述(第2版)》為普通高等教育“十一五”國(guó)家級(jí)規(guī)劃教材。 本書內(nèi)容分為3部分:算法和算法分析、算法設(shè)計(jì)策略及求解困難問(wèn)題。第1部分介紹問(wèn)題求解方法、算法復(fù)雜度和分析、遞歸算法和遞推關(guān)系;第2部分討論常用的算法設(shè)計(jì)策略:基本搜索和遍歷方法、分治法、貪心法、動(dòng)態(tài)規(guī)劃法、回溯法和分枝限界法;第3部分介紹NP完全問(wèn)題、隨機(jī)算法、近似算法和密碼算法。書中還介紹了兩種新的數(shù)據(jù)結(jié)構(gòu):跳表和伸展樹,以及它們特定的算法分析方法,并對(duì)現(xiàn)代密碼學(xué)做了簡(jiǎn)要論述。 本書結(jié)構(gòu)清晰、內(nèi)容翔實(shí)、邏輯嚴(yán)謹(jǐn)、深入淺出。書中算法有完整的C++程序,程序構(gòu)思精巧,且有詳細(xì)注釋。所有程序都已在VC++環(huán)境下編譯通過(guò)并能正確運(yùn)行,它們既是學(xué)習(xí)算法設(shè)計(jì)的示例,也能使復(fù)雜抽象的算法設(shè)計(jì)更易為學(xué)習(xí)者理解和掌握。書中包含大量實(shí)例和圖示,并附豐富的習(xí)題,便于自學(xué)。
第1部分 算法和算法分析第1章 算法問(wèn)題求解基礎(chǔ)1.1 算法概述1.1.1 什么是算法1.1.2 為什么學(xué)習(xí)算法1.2 問(wèn)題求解方法1.2.1 問(wèn)題和問(wèn)題求解1.2.2 問(wèn)題求解過(guò)程1.2.3 系統(tǒng)生命周期1.3 算法設(shè)計(jì)與分析1.3.1 算法問(wèn)題求解過(guò)程1.3.2 如何設(shè)計(jì)算法1.3.3 如何表示算法1.3.4 如何確認(rèn)算法1.3.5 如何分析算法1.4 遞歸和歸納1.4.1 遞歸1.4.2 遞歸算法示例1.4.3 歸納證明本章小結(jié)習(xí)題1第2章 算法分析基礎(chǔ)2.1 算法復(fù)雜度2.1.1 什么是好的算法2.1.2 影響程序運(yùn)行時(shí)間的因素2.1.3 算法的時(shí)間復(fù)雜度2.1.4 使用程序步分析算法2.1.5 算法的空間復(fù)雜度2.2 漸近表示法2.2.1 大O記號(hào)2.2.2 記號(hào)2.2.3 記號(hào)2.2.4 小o記號(hào)2.2.5 算法按時(shí)間復(fù)雜度分類2.3 遞推關(guān)系2.3.1 遞推方程2.3.2 替換方法2.3.3 迭代方法2.3.4 主方法2.4 分?jǐn)偡治?br />2.4.1 聚集方法2.4.2 會(huì)計(jì)方法2.4.3 勢(shì)能方法本章小結(jié)習(xí)題2第3章 伸展樹與跳表3.1 伸展樹3.1.1 二叉搜索樹3.1.2 自調(diào)節(jié)樹和伸展樹3.1.3 伸展操作3.1.4 伸展樹類3.1.5 旋轉(zhuǎn)的實(shí)現(xiàn)3.1.6 插入運(yùn)算的實(shí)現(xiàn)3.1.7 分?jǐn)偡治?br />3.2 跳表3.2.1 什么是跳表3.2.2 跳表類3.2.3 級(jí)數(shù)分配3.2.4 插入運(yùn)算的實(shí)現(xiàn)3.2.5 性能分析本章小結(jié)習(xí)題3第2部分 算法設(shè)計(jì)策略第4章 基本搜索和遍歷方法4.1 基本概念4.2 圖的搜索和遍歷4.2.1 搜索方法4.2.2 鄰接表類4.2.3 廣度優(yōu)先搜索4.2.4 深度優(yōu)先搜索4.3 雙連通分量4.3.1 基本概念4.3.2 發(fā)現(xiàn)關(guān)節(jié)點(diǎn)4.3.3 構(gòu)造雙連通圖4.4 與或圖4.4.1 問(wèn)題分解4.4.2 判斷與或樹是否可解4.4.3 構(gòu)建解樹本章小結(jié)習(xí)題4第5章 分治法5.1 一般方法5.1.1 分治法的基本思想5.1.2 算法分析5.1.3 數(shù)據(jù)結(jié)構(gòu)5.2 求最大最小元5.2.1 分治法求解5.2.2 時(shí)間分析5.3 二分搜索5.3.1 分治法求解5.3.2 對(duì)半搜索5.3.3 二叉判定樹5.3.4 搜索算法的時(shí)間下界5.4 排序問(wèn)題5.4.1 合并排序5.4.2 快速排序5.4.3 排序算法的時(shí)間下界5.5 選擇問(wèn)題5.5.1 分治法求解5.5.2 隨機(jī)選擇主元5.5.3 線性時(shí)間選擇算法5.5.4 時(shí)間分析5.5.5 允許重復(fù)元素的選擇算法5.6 斯特拉森矩陣乘法5.6.1 分治法求解5.6.2 斯特拉森分治法本章小結(jié)習(xí)題5第6章 貪心法6.1 一般方法6.2 背包問(wèn)題6.2.1 問(wèn)題描述6.2.2 貪心法求解6.2.3 算法正確性6.3 帶時(shí)限的作業(yè)排序6.3.1 問(wèn)題描述6.3.2 貪心法求解6.3.3 算法正確性6.3.4 可行性判定6.3.5 作業(yè)排序貪心算法6.3.6 一種改進(jìn)算法6.4 最佳合并模式6.4.1 問(wèn)題描述6.4.2 貪心法求解6.4.3 算法正確性6.5 最小代價(jià)生成樹6.5.1 問(wèn)題描述6.5.2 貪心法求解6.5.3 普里姆算法6.5.4 克魯斯卡爾算法6.5.5 算法正確性6.6 單源最短路徑6.6.1 問(wèn)題描述6.6.2 貪心法求解6.6.3 迪杰斯特拉算法6.6.4 算法正確性6.7 磁帶最優(yōu)存儲(chǔ)6.7.1 單帶最優(yōu)存儲(chǔ)6.7.2 多帶最優(yōu)存儲(chǔ)6.8 貪心法的基本要素6.8.1 最優(yōu)量度標(biāo)準(zhǔn)6.8.2 最優(yōu)子結(jié)構(gòu)本章小結(jié)習(xí)題6第7章 動(dòng)態(tài)規(guī)劃法7.1 一般方法和基本要素7.1.1 一般方法7.1.2 基本要素7.1.3 多段圖問(wèn)題7.1.4 資源分配問(wèn)題7.1.5 關(guān)鍵路徑問(wèn)題7.2 每對(duì)結(jié)點(diǎn)間的最短路徑7.2.1 問(wèn)題描述7.2.2 動(dòng)態(tài)規(guī)劃法求解7.2.3 弗洛伊德算法7.2.4 算法正確性7.3 矩陣連乘7.3.1 問(wèn)題描述7.3.2 動(dòng)態(tài)規(guī)劃法求解7.3.3 矩陣連乘算法7.3.4 備忘錄方法7.4 最長(zhǎng)公共子序列7.4.1 問(wèn)題描述7.4.2 動(dòng)態(tài)規(guī)劃法求解7.4.3 最長(zhǎng)公共子序列算法7.4.4 算法的改進(jìn)7.5 最優(yōu)二叉搜索樹7.5.1 問(wèn)題描述7.5.2 動(dòng)態(tài)規(guī)劃法求解7.5.3 最優(yōu)二叉搜索樹算法7.6 0/1背包7.6.1 問(wèn)題描述7.6.2 動(dòng)態(tài)規(guī)劃法求解7.6.3 0/1背包算法框架7.6.4 0/1背包算法7.6.5 性能分析7.6.6 使用啟發(fā)式方法7.7 流水作業(yè)調(diào)度7.7.1 問(wèn)題描述7.7.2 動(dòng)態(tài)規(guī)劃法求解7.7.3 Johnson算法本章小結(jié)習(xí)題7第8章 回溯法8.1 一般方法8.1.1 基本概念8.1.2 剪枝函數(shù)和回溯法8.1.3 回溯法的效率分析8.2 n-皇后8.2.1 問(wèn)題描述8.2.2 回溯法求解8.2.3 n-皇后算法8.2.4 時(shí)間分析8.3 子集和數(shù)8.3.1 問(wèn)題描述8.3.2 回溯法求解8.3.3 子集和數(shù)算法8.4 圖的著色8.4.1 問(wèn)題描述8.4.2 回溯法求解8.4.3 圖著色算法8.4.4 時(shí)間分析8.5 哈密頓環(huán)8.5.1 問(wèn)題描述8.5.2 哈密頓環(huán)算法8.6 0/1背包8.6.1 問(wèn)題描述8.6.2 回溯法求解8.6.3 限界函數(shù)8.6.4 0/1背包算法8.7 批處理作業(yè)調(diào)度8.7.1 問(wèn)題描述8.7.2 回溯法求解8.7.3 批處理作業(yè)調(diào)度算法本章小結(jié)習(xí)題8第9章 分枝限界法9.1 一般方法9.1.1 分枝限界法概述9.1.2 LC分枝限界法9.1.3 15謎問(wèn)題9.2 求最優(yōu)解的分枝限界法9.2.1 上下界函數(shù)9.2.2 FIFO分枝限界法9.2.3 LC分枝限界法9.3 帶時(shí)限的作業(yè)排序9.3.1 問(wèn)題描述9.3.2 分枝限界法求解9.3.3 帶時(shí)限作業(yè)排序算法9.4 0/1背包9.4.1 問(wèn)題描述9.4.2 分枝限界法求解9.4.3 0/1背包算法9.5 旅行商問(wèn)題9.5.1 問(wèn)題描述9.5.2 分枝限界法求解9.6 批處理作業(yè)調(diào)度9.6.1 問(wèn)題描述9.6.2 分枝限界法求解9.6.3 批處理作業(yè)調(diào)度算法本章小結(jié)習(xí)題9第3部分 求解困難問(wèn)題第10章 NP完全問(wèn)題10.1 基本概念10.1.1 不確定算法和不確定機(jī)10.1.2 可滿足性問(wèn)題10.1.3 P類和NP類問(wèn)題10.1.4 NP難度和NP完全問(wèn)題10.2 Cook定理和證明10.2.1 Cook定理10.2.2 簡(jiǎn)化的不確定機(jī)模型10.2.3 證明Cook定理10.3 一些典型的NP完全問(wèn)題10.3.1 最大集團(tuán)10.3.2 頂點(diǎn)覆蓋