為了便于讀者進行系統(tǒng)學(xué)習(xí)、分類整理知識點及遇到問題時能夠快速找到求解的方法,本書按照算法策略進行劃分,每一章都引入了若干個經(jīng)典問題。通過問題的分析、計算模型的建立、算法的設(shè)計與描述、算法的分析來深入解讀每一種算法策略所能解決的問題范疇及方法。全書共分9章,內(nèi)容包括:算法設(shè)計基礎(chǔ)、算法效率分析基礎(chǔ)、迭代法、蠻力法、分治策略、回溯與分支界限、貪心算法、動態(tài)規(guī)劃、隨機算法。
本書非常注重教材的可讀性和實用性,以問題分析→模型設(shè)計→算法設(shè)計描述→算法分析為技術(shù)線路,幫助讀者迅速掌握算法設(shè)計要點,規(guī)范算法設(shè)計、分析及實現(xiàn)的方法。書中例題的問題分析和模型設(shè)計模塊用于培養(yǎng)讀者的抽象設(shè)計能力,算法設(shè)計模塊用于提高讀者運用計算機求解問題的能力,算法分析模塊用于幫助讀者運行用數(shù)學(xué)工具對算法進行客觀分析。同時,本書編寫時也考慮到初學(xué)者所面臨的困難,在算法設(shè)計與描述中,刻意增加了基于源代碼的程序設(shè)計與實現(xiàn)環(huán)節(jié),從而全方位地幫助讀者提高算法設(shè)計與分析實踐能力和理論水平。
知識講解清晰,每章有思維導(dǎo)圖引領(lǐng)。有配套的實驗指導(dǎo)書、多媒體課件,提供教材課后習(xí)題答案,案例豐富,與應(yīng)用結(jié)合。針對初學(xué)者學(xué)習(xí)算法面臨的困難,設(shè)計了相應(yīng)的環(huán)節(jié),對初學(xué)者友好,更便于其提高。
工作單位:哈爾濱工業(yè)大學(xué)(威海)計算機科學(xué)與技術(shù)學(xué)院。
科研情況:作為項目主要負責(zé)人和參與者承擔(dān)完成各類科研項目10多項,其中核高基重大專項項目 1項,國家863計劃子課題1項,山東省科技攻關(guān)計劃項 1項,山東省自然科學(xué)基金項 1項,山東省自主創(chuàng)新工程1項,山東省重大科技攻關(guān)1項,其他課題項目2項。發(fā)表科研論文10多篇,其中多篇被EI等主要檢索工具檢索。
出版教材: 《C語言程序設(shè)計與應(yīng)用》 《C語言程序設(shè)計與應(yīng)用實驗指導(dǎo)書》 《計算機實用教程》
第 1章 算法設(shè)計基礎(chǔ) 1
1.1算法的基本概念 2
1.2算法描述的方法 5
1.3算法設(shè)計的過程 8
1.4算法設(shè)計工具 12
1.4.1 循環(huán)設(shè)計 12
1.4.2 遞歸設(shè)計 16
1.4.3循環(huán)與遞歸的比較 17
1.5基本的數(shù)據(jù)結(jié)構(gòu) 21
1.5.1 線性數(shù)據(jù)結(jié)構(gòu) 21
1.5.2 樹 21
1.5.3 圖 22
本章小結(jié) 24
第 2章 算法效率分析基礎(chǔ) 26
2.1 數(shù)學(xué)基礎(chǔ) 28
2.1.1函數(shù)的漸近的界 28
2.1.2利用極限求函數(shù)的漸近的界 30
2.1.3有用的求和級數(shù)及推導(dǎo)方法 31
2.1.4 基本效率類型 33
2.2 算法效率分析 33
2.2.1非遞歸形式算法分析 33
2.2.2遞歸形式算法分析 35
本章小結(jié) 39
第3章 迭代法 40
3.1迭代法的設(shè)計技術(shù) 40
3.2簡單迭代運算 40
3.3求解方程的近似算法 47
3.3.1非線性方程 47
3.3.2求線性代數(shù)方程組 51
本章小結(jié) 53
第4章 蠻力法 54
4.1 枚舉法 54
4.2 窮舉查找 59
4.3 圖的搜索 63
4.3.1 深度優(yōu)先查找 63
4.3.2 廣度優(yōu)先查找 65
本章小結(jié) 67
第5章 分治策略 68
5.1 分治法的設(shè)計技術(shù) 68
5.2 二分查找 69
5.3 大整數(shù)的乘法和Strassen矩陣乘法 70
5.4 棋盤覆蓋 74
5.5 選擇性問題 76
本章小結(jié) 78
第6章 回溯與分支限界 79
6.1 回溯法的設(shè)計技術(shù) 80
6.1.1 算法思想 80
6.1.2 算法框架 81
6.1.3 回溯算法的適用條件 82
6.2 回溯算法的經(jīng)典例題 83
6.2.1 裝載問題 83
6.2.2 n皇后問題 85
6.2.3 0-1背包問題 86
6.2.4 旅行商問題 88
6.3 分支限界法的設(shè)計技術(shù) 91
6.4 分支限界的經(jīng)典例題 92
6.4.1 裝載問題 92
6.4.2 背包問題 97
6.4.3 旅行商問題 101
本章小結(jié) 110
第7章 貪心算法 112
7.1 貪心算法的設(shè)計技術(shù) 112
7.2 用貪心法求問題的解 113
7.3 近似貪心問題 118
本章小結(jié) 119
第8章 動態(tài)規(guī)劃 120
8.1 動態(tài)規(guī)劃的設(shè)計技術(shù) 120
8.2 投資分配問題 125
8.3 背包問題 128
8.4 矩陣連乘 132
8.5 最長公共子序列 135
8.6 最大子段和 138
本章小結(jié) 140
第9章 隨機算法 141
9.1同余的概念 141
9.2 隨機數(shù) 143
9.3 蒙特卡羅算法 144
9.4 舍伍德算法 149
9.5 拉斯維加斯算法 151
本章小結(jié) 152