上传者: jk_879
|
上传时间: 2020-04-08 03:16:45
|
文件大小: 41.66MB
|
文件类型: PDF
作 者:徐子珊 著
出 版 社:人民邮电出版社
ISBN:9787115228376
出版时间:2010-06-01
版 次:1
页 数:409
装 帧:平装
开 本:16开
国内算法界著名学者、计算理论学组组长朱洪教授推荐。
本算法教材文笔顺畅,处理算法描述的两难问题有自己的特点,且具有丰富的C、C++和Java实现程序,这对读者学以致用很有帮助。《算法设计、分析与实现从入门到精通:C、C++和Java》还有一个特点,文采甚好,如集腋成裘、化整为零、赢得舞伴等,生动形象,易于学习和理解。《算法设计、分析与实现从入门到精通:C、C++和Java》插图也精美,如Hanoi塔图等,都给《算法设计、分析与实现从入门到精通:C、C++和Java》增色很多,让读者在兴趣中学习。此书在应用性例题上,兼有中、英文描述题目,如环法自行车赛、牛牛玩牌、射雕英雄等例题。这些例题来自ACM/ICPC,它们富有挑战性,可引起读者的学习兴趣。
38个经典范例,包括渐增型算法、分治算法、动态规划算法、贪婪算法、回溯算法、线性规划算法和计算几何等算法设计和实现技巧。
26个国际大学生程序设计竞赛真题的详细解析及算法的应用。
3种主流语言(C、C++和Java)实现算法范例程序。
内容简介
《算法设计、分析与实现从入门到精通:C、C++和Java》第1章~第6章按算法设计技巧分成渐增型算法、分治算法、动态规划算法、贪婪算法、回溯算法和图的搜索算法。每章针对一些经典问题给出解决问题的算法,并分析算法的时间复杂度。这样对于初学者来说,按照算法的设计方法划分,算法思想的阐述比较集中,有利于快速入门理解算法的精髓所在。一旦具备了算法设计的基本方法,按应用领域划分专题深入学习,读者可以结合已学的方法综合起来解决比较复杂的问题。《算法设计、分析与实现从入门到精通:C、C++和Java》第7章的线性规划和第8章的计算几何是综合算法部分,通过学习这些内容,读者将进一步地学习更前沿的随机算法、近似算法和并行算法等现代算法设计方法和实战技巧。
《算法设计、分析与实现从入门到精通:C、C++和Java》特色是按照算法之间逻辑关系编排学习顺序,并对每一个经典算法,都给出了完整的C/C++/Java三种主流编程语言的实现程序,是一本既能让读者清晰、轻松地理解算法思想,又能让读者编程实现算法的实用书籍。建议读者对照《算法设计、分析与实现从入门到精通: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.1 Hanoi塔问题与递归算法 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.2 C/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.3 0-1背包问题 136
3.3.1 算法描述与分析 136
3.3.2 程序实现 138
3.3.3 算法的应用 142
3.4 带权有向图中任意两点间的最短路径 144
3.4.1 算法描述与分析 1