計算機常用算法與程式設計案例教程

計算機常用算法與程式設計案例教程

1.3.2 2.3.1 3.2.1

圖書信息

作者: 楊克昌
出版社: 清華大學出版社; 第1版 (2011年7月1日)
叢書名: 高等學校計算機專業教材精選·算法與程式設計
平裝: 299頁
正文語種: 簡體中文
開本: 16
ISBN: 9787302253082
條形碼: 9787302253082
產品尺寸及重量: 25.7 x 18.3 x 1.5 cm ; 481 g

內容簡介

《計算機常用算法與程式設計案例教程》遵循“精選案例,面向設計,深入淺出,注重能力培養”的要求,以“案例”形式實現“算法與程式設計”教學。《計算機常用算法與程式設計案例教程》精選枚舉、遞推、遞歸、回溯、動態規劃、貪心算法與模擬等常用算法,精選各算法求解的典型案例,注重算法設計與程式實現,注重算法改進與程式最佳化,力求理論與實際相結合,算法與程式相統一。每一個案例求解,從案例提出、算法設計與描述,到程式實現、運行結果與討論,環環相扣,融為一體。
《計算機常用算法與程式設計案例教程》所有案例求解給出詳細的算法描述與完整的c程式。每章最後附有習題,在附錄中給出習題求解提示,所有源程式可從清華大學出版社網站下載。
《計算機常用算法與程式設計案例教程》可作為高等院校計算機及相關專業“算法設計與分析”、“電腦程式設計”課程教材,也可供軟體設計人員與計算機愛好者學習參考。

編輯推薦

《計算機常用算法與程式設計案例教程》:首創“案例”形式實現算法與程式設計教學。通過典型案例來引導算法設計的逐步深入,來展開程式設計的求解實施,實現以典型案例支撐算法,以算法設計指導案例求解的良性循環。
注重常用算法的選取與組織。在常用算法的選取上克服貪多求全、貪廣求深,去除一些難度大、理論深、套用少的帶學術研究性質的算法內容,結合本科教學實際與套用需求,選取枚舉、遞推、遞歸、回溯、動態規劃、貪心算法與模擬等常用算法。
注重典型案例的精選與提煉。針對選取的每一種常用算法,精選典型的實際案例,包括典型的數值求解,常見的數據處理,有趣的智力測試,巧妙的模擬探索,既有引導入門的基礎案例,也有難度較大的綜合案例,既有新創趣題,也有經典名題,難度適宜,深入淺出。
注重算法設計與程式實現的緊密結合。在講述每一種常用算法的基本思路與設計步驟的基礎上,落實到每一個案例求解,從案例的提出到算法設計與描述、從程式實現到案例結果的討論與分析,環環相扣,融為一體,力求理論與實際相結合、算法與程式相統一,突出算法在解決實際案例中的核心地位與引導作用,切實提高對所學算法的理解和掌握。
注重算法改進與程式最佳化。教程對一些典型案例套用多種不同的算法設計,編寫不同表現形式與不同設計風格的程式,體現了算法與程式設計的靈活性和多樣性。

目錄

第1章 算法與程式設計概述1
1.1 算法及其描述1
1.1.1 算法定義1
1.1.2 算法描述3
1.2 算法的複雜性分析7
1.2.1 時間複雜度7
1.2.2 空間複雜度12
1.3 算法與程式設計13
1.3.1 算法與程式13
1.3.2 結構化程式設計18
習題120
第2章 枚舉22
2.1 枚舉概述22
2.2 統計與求和23
2.2.1 指定特殊整數23
2.2.2 最簡真分數 25
2.3 解方程26
2.3.1 解佩爾方程26
2.3.2 解超越方程28
2.4 解不等式30
2.4.1 分數不等式30
2.4.2 代數和不等式31
2.5 求最值34
2.5.1 基於素數的代數和34
2.5.2 整數的因數比35
2.6 數組與數列36
2.6.1 雙和數組36
2.6.2 基於2x+3y的遞推數列38
2.7 數式探求39
2.7.1 逆序乘積式39
2.7.2 完美綜合式40
2.8 趣味數陣43
2.8.1 素數幻方43
2.8.2 和積三角形46
2.9 枚舉套用小結48
習題253
第3章 遞推55
3.1 遞推概述55
3.1.1 遞推算法55
3.1.2 遞推實施步驟與描述56
3.2 遞推數列58
3.2.1 擺動數列58
3.2.2 分數數列59
3.3 冪序列60
3.3.1 雙冪序列60
3.3.2 冪積序列62
3.4 數陣探索67
3.4.1 楊輝三角67
3.4.2 摺疊方陣69
3.5 整數劃分問題71
3.5.1 整數劃分遞推設計71
3.5.2 整數劃分遞推最佳化73
3.6 水手分椰子問題74
3.6.1 水手分椰子74
3.6.2 n個水手分椰子77
3.7 猴子爬山79
3.7.1 簡單案例的具體遞推79
3.7.2 一般情形的分級遞推80
3.8 遞推套用小結82
習題383
第4章 遞歸85
4.1 遞歸概述85
4.2 排隊購票87
4.3 漢諾塔問題89
4.3.1 求移動次數90
4.3.2 展示移動過程91
4.4 旋轉數陣92
4.4.1 雙轉向旋轉方陣92
4.4.2 m行n列順轉矩陣95
4.5 快速排序與選擇97
4.5.1 快速排序97
4.5.2 分區交換選擇100
4.6 排列組合的實現102
4.6.1 實現排列?a(n,m?)102
4.6.2 實現組合?c(n,m?)105
4.6.3 實現複雜排列107
4.7 整數的拆分109
4.7.1 拆分零數取自連續區間109
4.7.2 拆分零數取自指定整數111
4.8 遞歸套用小結112
習題4115
第5章 回溯法117
5.1 回溯法概述117
5.1.1 回溯的概念117
5.1.2 回溯描述117
5.2 橋本分數式122
5.2.1 橋本分數式概述122
5.2.2 10數字分數式124
5.3 直尺與串珠125
5.3.1 古尺神奇126
5.3.2 數碼串珠128
5.4 逐位整除數探索130
5.4.1 高逐位整除數130
5.4.2 低逐位整除數132
5.5 環序列134
5.5.1 素數和環134
5.5.2 德布魯金環136
5.6 裝錯信封問題138
5.6.1 伯努利裝錯信封問題138
5.6.2 特殊錯位探索141
5.7 別出心裁的情侶拍照144
5.7.1 逐位安排與回溯144
5.7.2 成對安排與回溯146
5.8 回溯套用小結148
習題5150
第6章 動態規劃152
6.1 動態規劃概述152
6.1.1 動態規劃的概念152
6.1.2 動態規劃實施步驟153
6.2 最長子序列探索154
6.2.1 最長非降子序列154
6.2.2 最長公共子序列157
6.3 最優路徑搜尋160
6.3.1 點數值三角形的最優路徑160
6.3.2 邊數值矩形的最優路徑162
6.4 裝載問題165
6.5 0-1背包問題169
6.5.1 一般0-1背包問題169
6.5.2 二維約束0-1背包問題173
6.6 插入乘號問題178
6.6.1 動態規劃求解178
6.6.2 基於組合枚舉求解181
6.7 動態規劃套用小結182
習題6185
第7章 貪心算法186
7.1 貪心算法概述186
7.2 刪數字問題187
7.3 埃及分數式190
7.3.1 選擇最小分母構建190
7.3.2 貪心選擇範圍的擴展192
7.4 可拆背包問題193
7.5 數列操作與極差195
7.5.1 數列操作195
7.5.2 數列操作最佳化196
7.5.3 數列極差198
7.6 哈夫曼樹及其套用201
7.6.1 哈夫曼樹201
7.6.2 哈夫曼編碼204
7.7 貪心算法套用小結207
習題7208
第8章 模擬210
8.1 豎式乘除模擬210
8.1.1 豎式除模擬210
8.1.2 豎式乘模擬211
8.2 乘數探求211
8.2.1 積為若干個1構成212
8.2.2 積為若干個2011構成213
8.2.3 積的任意指定構成214
8.3 尾數前移問題215
8.3.1 限1位尾數前移215
8.3.2 多位尾數前移217
8.4 階乘冪與排列組合數的計算218
8.5 圓周率π的高精度計算220
8.6 蒙特卡羅模擬計算222
8.7 模擬發橋牌224
8.8 泊松分酒227
8.9 模擬套用小結230
習題8231
第9章 算法的綜合套用232
9.1 最大子段和問題232
9.1.1 序列的最大子段和232
9.1.2 環序列的最大子段和235
9.2 高斯皇后問題238
9.2.1 高斯八皇后問題238
9.2.2 n皇后問題240
9.2.3 皇后全控棋盤問題243
9.3 馬步遍歷與哈密頓圈248
9.3.1 馬步遍歷249
9.3.2 馬步型哈密頓圈256
9.3.3 組合型哈密頓圈260
9.4 算法的綜合套用小結266
習題9267附錄268
附錄a 部分習題求解提要268
附錄b 在vc++6.0環境下運行c程式方法簡介290
附錄c c常用庫函式295參考文獻299

相關詞條

熱門詞條

聯絡我們