算法设计分析与实现从入门到精通(CC++和Java)

王朝百科·作者佚名  2012-02-21  
宽屏版  字体: |||超大  

内容提要作者:徐子珊

本算法教材文笔顺畅,处理算法描述的两难问题有自己的特点,且具有丰富的C、C++和Java实现程序,这对读者学以致用很有帮助。本书还有一个特点,文采甚好,如集腋成裘、化整为零、赢得舞伴等,生动形象,易于学习和理解。本书插图也精美,如Hanoi塔图等,都给本书增色很多,让读者在兴趣中学习。此书在应用性例题上,兼有中、英文描述题目,如环法自行车赛、牛牛玩牌、射雕英雄等例题。这些例题来自ACM/ICPC,它们富有挑战性,可引起读者的学习兴趣。

本书第1章~第6章按算法设计技巧分成渐增型算法、分治算法、动态规划算法、贪婪算法、回溯算法

点击此处添加图片说明和图的搜索算法。每章针对一些经典问题给出解决问题的算法,并分析算法的时间复杂度。这样对于初学者来说,按照算法的设计方法划分,算法思想的阐述比较集中,有利于快速入门理解算法的精髓所在。一旦具备了算法设计的基本方法,按应用领域划分专题深入学习,读者可以结合已学的方法综合起来解决比较复杂的问题。本书第7章的线性规划和第8章的计算几何是综合算法部分,通过学习这些内容,读者将进一步地学习更前沿的随机算法、近似算法和并行算法等现代算法设计方法和实战技巧。

本书特色是按照算法之间逻辑关系编排学习顺序,并对每一个经典算法,都给出了完整的C/C++/Java三种主流编程语言的实现程序,是一本既能让读者清晰、轻松地理解算法思想,又能让读者编程实现算法的实用书籍。建议读者对照本书在计算机上自己创建项目、文件,进行录入、调试程序等操作,从中体会算法思想的精髓,体验编程成功带来的乐趣。

目录第1章集腋成裘——渐增型算法1

1.1算法设计与分析1

1.2插入排序算法4

1.2.1算法描述与分析4

1.2.2程序实现6

1.2.3应用——赢得舞伴30

1.3两个有序序列的合并算法32

1.3.1算法描述与分析32

1.3.2程序实现34

1.4序列的划分45

1.4.1算法描述与分析45

1.4.2程序实现46

1.5小结52

第2章化整为零——分治算法53

2.1Hanoi塔问题与递归算法53

2.1.1算法的描述与分析53

2.1.2程序实现56

2.1.3应用——新Hanoi塔游戏59

2.2归并排序算法62

2.2.1算法描述与分析62

2.2.2程序实现63

2.2.3应用——让舞伴更开心69

2.3快速排序算法70

2.3.1算法描述与分析70

2.3.2程序实现72

2.4堆的实现79

2.4.1堆的概念及其创建79

2.4.2程序实现83

2.5堆排序88

2.5.1算法描述与分析88

2.5.2程序实现89

2.6基于二叉堆的优先队列94

2.6.1算法描述与分析94

2.6.2程序实现95

2.7关于排序算法105

2.7.1比较型排序算法的时间复杂度105

2.7.2C/C++/Java提供的排序函数(方法)107

2.7.3应用——环法自行车赛108

2.8小结109

第3章记表备查——动态规划算法111

3.1矩阵链乘法112

3.1.1算法描述与分析112

3.1.2程序实现115

3.1.3应用——牛牛玩牌121

3.2最长公共子序列123

3.2.1算法描述与分析123

3.2.2程序实现126

3.2.3算法的应用132

3.30-1背包问题136

3.3.1算法描述与分析136

3.3.2程序实现138

3.3.3算法的应用142

3.4带权有向图中任意两点间的最短路径144

3.4.1算法描述与分析144

3.4.2程序实现148

3.4.3应用——牛牛聚会153

3.5小结155

第4章高效的选择——贪婪算法156

4.1活动选择问题156

4.1.1算法描述与分析156

4.1.2程序实现158

4.1.3贪婪算法与动态规划163

4.1.4应用——海岸雷达165

4.2Huffman编码166

4.2.1算法描述与分析166

4.2.2程序实现170

4.2.3应用——Huffman树180

4.3最小生成树183

4.3.1算法描述与分析183

4.3.2程序实现187

4.3.3应用——北方通信网196

4.4单源最短路径问题197

4.4.1算法描述与分析197

4.4.2程序实现200

4.4.3应用——西气东送207

4.5小结210

第5章艰苦卓绝——回溯算法211

5.1组合问题与回溯算法211

5.1.13-着色问题211

5.1.2n-皇后问题214

5.1.3Hamilton回路问题216

5.1.4子集和问题218

5.2解决组合问题的回溯算法框架219

5.2.1算法框架219

5.2.2程序实现223

5.3排列树和子集树235

5.3.1子集树问题236

5.3.2排列树问题241

5.4用回溯算法解决组合优化问题245

5.4.1算法框架245

5.4.2旅行商问题247

5.4.3应用253

5.5P,NP和NP-完全问题260

5.6小结262

第6章图的搜索算法264

6.1广度优先搜索265

6.1.1算法描述与分析265

6.1.2程序实现268

6.1.3应用——攻城略地276

6.2深度优先搜索278

6.2.1算法描述与分析278

6.2.2程序实现280

6.2.3有向无圈图的拓扑排序283

6.2.4应用——全排序290

6.3有向图的强连通分支292

6.3.1算法描述与分析292

6.3.2程序实现295

6.3.3应用——亲情号300

6.4无向图的双连通分支303

6.4.1算法描述与分析303

6.4.2程序实现306

6.4.3应用——雌雄大盗308

6.5流网络与最大流问题310

6.5.1算法描述与分析310

6.5.2程序实现319

6.5.3应用321

6.6小结324

第7章集组合优化问题之大成——线性规划325

7.1标准形式与松弛形式328

7.1.1线性规划的标准形式328

7.1.2线性规划的松弛形式331

7.2单纯形算法334

7.2.1单纯形算法的例子334

7.2.2轴转操作337

7.2.3正规的单纯形算法340

7.3初始基本可行解347

7.4应用——将组合优化问题形式化为线性规划355

7.5小结359

第8章图形学基础——计算几何360

8.1线段的性质360

8.1.1叉积及其应用361

8.1.2程序实现364

8.2判断是否存在线段相交367

8.2.1算法描述与分析367

8.2.2程序实现370

8.3求凸壳374

8.3.1Graham扫描375

8.3.2Jarvis行进381

8.4求最邻近点对384

8.4.1算法描述与分析385

8.4.2程序实现387

8.5应用389

8.5.1光导管389

8.5.2最小边界矩形391

8.5.3得克萨斯一日游392

8.6小结394

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有