算法與數(shù)據(jù)結(jié)構(gòu)

出版時(shí)間:2013-4  出版社:清華大學(xué)出版社  

內(nèi)容概要

算法是每個(gè)計(jì)算機(jī)應(yīng)用程序的核心。算法學(xué)是計(jì)算機(jī)科學(xué)的一個(gè)嶄新、活躍的領(lǐng)域。每位計(jì)算機(jī)科學(xué)家和專業(yè)程序員都應(yīng)該熟悉算法的基本工具包;即有效組織和檢索數(shù)據(jù)的結(jié)構(gòu)。常用的算法;用于建模、理解并求解算法問(wèn)題的基本技術(shù)。
梅霍內(nèi)、桑德斯編著的《算法與數(shù)據(jù)結(jié)構(gòu)》內(nèi)容精煉,強(qiáng)調(diào)了學(xué)生和專業(yè)人員必須熟悉的編程和基本數(shù)學(xué)語(yǔ)言,包括了數(shù)組與鏈表、散列表與關(guān)聯(lián)數(shù)組、排序與選擇、優(yōu)先隊(duì)列、有序序列、圖的表示、圖的遍歷、最短路徑、最小生成樹(shù)和優(yōu)化等章節(jié)。本書(shū)首先提出問(wèn)題,然后進(jìn)行分析說(shuō)明,最后給出問(wèn)題的解決方案,在講解過(guò)程中,不僅給出清晰的定義,豐富的示例和練習(xí),而且還采用插圖和偽代碼來(lái)解釋算法,再用真正的編程語(yǔ)言(如C++和Java)高效實(shí)現(xiàn)算法。
《算法與數(shù)據(jù)結(jié)構(gòu)》是作者多年的本科生和研究生算法課程的經(jīng)驗(yàn)薈萃,非常適合作為算法與數(shù)據(jù)結(jié)構(gòu)課程的教材。

作者簡(jiǎn)介

作者:(德)梅霍內(nèi)、桑德斯 譯者:葛秀慧、田浩

書(shū)籍目錄

第1章 開(kāi)胃菜: 整數(shù)運(yùn)算1  1.1 加法2  1.2 乘法: 學(xué)校方法2  1.3 結(jié)果檢查5  1.4 遞歸版的學(xué)校方法6  1.5 Karatsuba乘法7  1.6 算法工程9  1.7 程序10  1.8 引理1.5和定理1.7的證明13  1.9 實(shí)現(xiàn)提示14  1.9.1 C++14  1.9.2 Java14  1.10 歷史注釋與進(jìn)一步的讀物15第2章 概述16  2.1 漸近表示法16  2.2 機(jī)器模型19  2.2.1 外部存儲(chǔ)器20  2.2.2 并行處理21  2.3 偽代碼21  2.3.1 變量和基本數(shù)據(jù)類型21  2.3.2 語(yǔ)句23  2.3.3 過(guò)程與函數(shù)23  2.3.4 面向?qū)ο?5  2.4 設(shè)計(jì)正確的算法和程序25  2.4.1 斷言和不變量26  2.4.2 循環(huán)不變量26  2.4.3 數(shù)據(jù)結(jié)構(gòu)不變量27  2.4.4 驗(yàn)證算法27  2.5 一個(gè)示例: 二分查找27  2.6 基本算法分析29  2.6.1 求和29  2.6.2 遞推30  2.6.3 全局參數(shù)33  2.7 平均情況分析33  2.7.1 遞增計(jì)數(shù)器33  2.7.2 從左到右的最大值34  2.7.3 線性搜索35  2.8 隨機(jī)算法36  2.8.1 形式模型37  2.8.2 Las Vegas和Monte Carlo算法38  2.9 圖39  2.9.1 第一個(gè)圖算法41  2.9.2 樹(shù)41  2.9.3 有序樹(shù)42  2.10 P與NP43  2.11 實(shí)現(xiàn)提示45  2.11.1 C++45  2.11.2 Java46  2.12 歷史注釋與進(jìn)一步的讀物46第3章 用數(shù)組與鏈表表示序列47  3.1 鏈表48  3.1.1 雙鏈表48  3.1.2 單鏈表51  3.2 無(wú)界數(shù)組52  3.2.1 無(wú)界數(shù)組的平攤分析: 全局參數(shù)53  3.2.2 無(wú)界數(shù)組的平攤分析: 局部參數(shù)55  3.2.3 二進(jìn)制計(jì)數(shù)器的平攤分析55  3.3* 平攤分析56  3.3.1 平攤分析: 勢(shì)能方法或銀行賬戶方法57  3.3.2 勢(shì)能方法的普遍性58  3.4 棧與隊(duì)列58  3.5 鏈表與數(shù)組60  3.6 實(shí)現(xiàn)提示61  3.6.1 C++61  3.6.2 Java62  3.7 歷史注釋與進(jìn)一步的讀物62第4章 散列表與關(guān)聯(lián)數(shù)組64  4.1 鏈接法散列66  4.2 通用散列67  4.3 線性探測(cè)散列71  4.4 鏈接法與線性探測(cè)法72  4.5 *完全散列73  4.6 實(shí)現(xiàn)提示75  4.6.1 C++76  4.6.2 Java76  4.7 歷史注釋與進(jìn)一步的讀物76第5章 排序與選擇78  5.1 簡(jiǎn)單排序80  5.2 歸并排序--O(nlogn)的排序算法81  5.3 下界83  5.4 快速排序85  5.4.1 分析85  5.4.2 細(xì)化87  5.5 選擇89  5.6 打破下界91  5.7 外部排序93  5.7.1 多路歸并94  5.7.2 采樣排序94  5.8 實(shí)現(xiàn)提示96  5.8.1 C/C++97  5.8.2 Java97  5.9 歷史注釋與進(jìn)一步的讀物97第6章 優(yōu)先級(jí)隊(duì)列99  6.1 二叉堆100  6.2 可尋址的優(yōu)先級(jí)隊(duì)列104  6.2.1 配對(duì)堆104  6.2.2 斐波那契堆106  6.3 外部存儲(chǔ)器109  6.4 實(shí)現(xiàn)提示110  6.4.1 C++110  6.4.2 Java110  6.5 歷史注釋與進(jìn)一步的讀物111第7章 有序序列112  7.1 二叉搜索樹(shù)113  7.2 (a,b)-樹(shù)與紅黑樹(shù)115  7.3 更多的操作121  7.3.1 連接121  7.3.2 拆分122  7.4 更新操作的平攤分析123  7.5 增強(qiáng)搜索樹(shù)124  7.5.1 父指針125  7.5.2 子樹(shù)大小125  7.6 實(shí)現(xiàn)提示126  7.6.1 C++127  7.6.2 Java127  7.7 歷史注釋與進(jìn)一步的讀物128第8章 圖的表示130  8.1 無(wú)序的邊序列131  8.2 鄰接數(shù)組--靜態(tài)圖132  8.3 鄰接表--動(dòng)態(tài)圖132  8.4 鄰接矩陣表示133  8.5 隱式表示134  8.6 實(shí)現(xiàn)提示134  8.6.1 C++135  8.6.2 Java135  8.7 歷史注釋與進(jìn)一步的讀物135第9章 圖的遍歷137  9.1 廣度優(yōu)先搜索137  9.2 深度優(yōu)先搜索139  9.2.1 DFS編號(hào)、完成時(shí)間和拓?fù)渑判?40  9.2.2 強(qiáng)連通分量142  9.3 實(shí)現(xiàn)提示147  9.3.1 C++147  9.3.2 Java148  9.4 歷史注釋與進(jìn)一步的讀物148第10章 最短路徑149  10.1 從基本概念到遺傳算法150  10.2 有向無(wú)環(huán)圖153  10.3 非負(fù)邊代價(jià)(Dijkstra算法)153  10.4 *Dijkstra算法的平均情況分析156  10.5 單調(diào)整數(shù)優(yōu)先級(jí)隊(duì)列157  10.5.1 桶隊(duì)列157  10.5.2 *基數(shù)堆158  10.6 任意邊代價(jià)(Bellman-Ford算法)161  10.7 所有點(diǎn)對(duì)最短路徑和節(jié)點(diǎn)的勢(shì)162  10.8 最短路徑查詢163  10.8.1 目標(biāo)定向搜索164  10.8.2 等級(jí)166  10.8.3 中轉(zhuǎn)節(jié)點(diǎn)路線166  10.9 實(shí)現(xiàn)提示167  10.9.1 C++167  10.9.2 Java167  10.10 歷史注釋與進(jìn)一步的讀物168第11章 最小生成樹(shù)169  11.1 割和環(huán)的性質(zhì)170  11.2 Jarník-Prim算法171  11.3 Kruskal算法172  11.4 并-查數(shù)據(jù)結(jié)構(gòu)173  11.5 *外部存儲(chǔ)器176  11.5.1 Semiexternal的Kruskal算法176  11.5.2 邊收縮176  11.5.3 Sibeyn算法176  11.6 應(yīng)用程序178  11.6.1 Steiner樹(shù)問(wèn)題178  11.6.2 旅行推銷員之旅179  11.7 實(shí)現(xiàn)提示180  11.7.1 C++180  11.7.2 Java180  11.8 歷史注釋與進(jìn)一步的讀物180第12章 遺傳方法優(yōu)化182  12.1 線性規(guī)劃: 黑盒求解器183  12.1.1 整數(shù)線性規(guī)劃185  12.2 貪婪算法: 永不回頭186  12.3 動(dòng)態(tài)規(guī)劃: 子問(wèn)題的構(gòu)建189  12.4 系統(tǒng)搜索: 有疑問(wèn),用蠻力192  12.4.1 求解整數(shù)線性規(guī)劃194  12.5 局部搜索: 全局思考,局部行動(dòng)194  12.5.1 爬山195  12.5.2 模擬退火: 從自然中學(xué)習(xí)196  12.5.3 局部搜索的優(yōu)化201  12.6 進(jìn)化算法201  12.7 實(shí)現(xiàn)提示203  12.8 歷史注釋與進(jìn)一步的讀物204附錄A205  A.1 數(shù)學(xué)符號(hào)205  A.2 數(shù)學(xué)概念206  A.3 概率論基礎(chǔ)207  A.4 有用的公式210  A.4.1 證明211參考文獻(xiàn)21

編輯推薦

梅霍內(nèi)、桑德斯編著的《算法與數(shù)據(jù)結(jié)構(gòu)》共分12章,涵蓋了數(shù)據(jù)結(jié)構(gòu)的數(shù)組與鏈表、散列表與關(guān)聯(lián)數(shù)組、排序與選擇、優(yōu)先隊(duì)列、有序序列、圖的表示、圖的遍歷、最短路徑、最小生成樹(shù)與優(yōu)化。第1章作為一個(gè)引子,作者以讀者熟悉的整數(shù)乘法為核心,介紹了大數(shù)乘法算法,以此激發(fā)讀者對(duì)算法的興趣。第2章介紹了本書(shū)算法所需的基礎(chǔ)知識(shí)--漸近表示法、術(shù)語(yǔ)、機(jī)器模型、高級(jí)偽代碼表、復(fù)雜度、平均情況分析、隨機(jī)算法、圖的基礎(chǔ)、復(fù)雜性類P和NP,同時(shí)還給出了本書(shū)的第一個(gè)綜合性示例--有序數(shù)組的二分查找。第3~11章是數(shù)據(jù)結(jié)構(gòu)課程必須學(xué)習(xí)的內(nèi)容,其與其他教科書(shū)的不同之處在于:作者獨(dú)具匠心的從問(wèn)題域到解域的思考方法,這種學(xué)習(xí)思想是非常棒的。在第12章中,以背包問(wèn)題為主線,介紹了7種遺傳方法:黑盒求解器、貪婪算法、線性規(guī)劃、動(dòng)態(tài)規(guī)劃、系統(tǒng)搜索、局部搜索和進(jìn)化算法。特別是局部搜索算法中的爬山、模擬退火和圖著色使人印象深刻。

圖書(shū)封面

評(píng)論、評(píng)分、閱讀與下載


    算法與數(shù)據(jù)結(jié)構(gòu) PDF格式下載


用戶評(píng)論 (總計(jì)0條)

 
 

推薦圖書(shū)


 

250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7