注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计其他编程语言/工具算法精粹:经典计算机科学问题的Java实现

算法精粹:经典计算机科学问题的Java实现

算法精粹:经典计算机科学问题的Java实现

定 价:¥79.00

作 者: [美]大卫·科帕克(David Kopec) 著
出版社: 机械工业出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787111716020 出版时间: 2022-12-01 包装: 平装-胶订
开本: 16开 页数: 字数:  

内容简介

  本书是一本面向中高级程序员的算法教程,借助Java语言,用经典的算法、编码技术和原理来求解计算机科学的一些经典问题。全书共10章,讲述了常见的搜索算法、常见的图算法、遗传算法、k均值聚类算法、简单的神经网络、对抗搜索算法等,通过丰富的方案、示例和习题展开具体实践。本书将计算机科学与应用程序、数据、性能等现实问题深度关联,定位独特,示例经典,可以帮助程序员提升用Java解决实际问题的技术、编程和应用能力。

作者简介

  ThoughtWorks资深咨询师,从事Android开发工作4年,对Android系统架构及应用层开发有着深入的理解。译有《Kotlin移动应用开发》。

图书目录

前 言
致 谢
第1章 一些小问题 1
1.1 斐波那契数列 1
1.1.1 第一次递归尝试 1
1.1.2 基线条件的运用 2
1.1.3 使用记忆化 4
1.1.4 简洁的斐波那契方法 5
1.1.5 使用流来生成斐波那
 契数列 6
1.2 简单的压缩算法 6
1.3 牢不可破的加密方案 10
1.3.1 按顺序获取数据 10
1.3.2 加密和解密 11
1.4 计算π 13
1.5 汉诺塔问题 14
1.5.1 对塔进行建模 15
1 5.2 求解汉诺塔问题 15
1.6 实际应用 17
1.7 习题 18
第2章 搜索问题 19
2.1 DNA搜索 19
2.1.1 存储DNA 19
2.1.2 线性搜索 21
2.1.3 二分搜索 22
2.1.4 通用示例 25
2.2 迷宫求解 26
2.2.1 生成随机迷宫 28
2.2.2 迷宫的其他方法 30
2.2.3 深度优先搜索 31
2.2.4 广度优先搜索 35
2.2.5 A*搜索 38
2.3 传教士和食人族问题 43
2.3.1 用代码来表达问题 44
2.3.2 求解 46
2.4 实际应用 48
2.5 习题 49
第3章 约束满足问题 50
3.1 构建约束满足问题的解决框架 51
3.2 澳大利亚地图着色问题 54
3.3 八皇后问题 57
3.4 单词搜索问题 59
3.5 字谜问题 65
3.6 电路板布局问题 66
3.7 实际应用 67
3.8 习题 67
第4章 图问题 68
4.1 地图是图的一种 68
4.2 搭建图的框架 70
4.3 查找最短路径 76
4.4 最小化网络构建成本 78
4.4.1 权重处理 78
4.4.2 查找最小生成树 82
4.5 在加权图中查找最短路径 87
4.6 实际应用 91
4.7 习题 92
第5章 遗传算法 93
5.1 生物学背景 93
5.2 通用遗传算法 94
5.3 简单测试 101
5.4 回顾字谜问题 103
5.5 优化列表压缩算法 107
5.6 遗传算法面临的挑战 110
5.7 实际应用 110
5.8 习题 111
第6章 k均值聚类 112
6.1 预备知识 112
6.2 k均值聚类算法 115
6.3 按年龄和经度对州长进行
 聚类 121
6.4 按长度对迈克尔·杰克逊的
 专辑进行聚类 125
6.5 k均值聚类算法问题及其
 扩展 127
6.6 实际应用 127
6.7 习题 128
第7章 简单神经网络 129
7.1 生物学基础 129
7.2 人工神经网络 131
7.2.1 神经元 131
7.2.2 层 132
7.2.3 反向传播 133
7.2.4 全貌 135
7.3 预备知识 136
7.3.1 点积 136
7.3.2 激活函数 137
7.4 构建神经网络 138
7.4.1 神经元的实现 138
7.4.2 层的实现 139
7.4.3 神经网络的实现 141
7.5 分类问题 144
7.5.1 数据的归一化 145
7.5.2 经典的鸢尾花数据集 146
7.5.3 葡萄酒的分类 150
7.6 加速神经网络 152
7.7 神经网络存在的问题及扩展 153
7.8 实际应用 154
7.9 习题 155
第8章 对抗搜索 156
8.1 棋盘游戏的基础组件 156
8.2 井字棋 158
8.2.1 井字棋的状态管理 158
8.2.2 极小化极大算法 161
8.2.3 用井字棋测试极小化
 极大算法 164
8.2.4 开发井字棋AI 166
8.3 四子棋 168
8.3.1 四子棋游戏程序 168
8.3.2 四子棋AI 174
8.3.3 用alpha-beta剪枝算法优化
 极小化极大算法 176
8.4 超越alpha-beta剪枝效果的
 极小化极大算法改进方案 177
8.5 实际应用 178
8.6 习题 179
第9章 其他问题 180
9.1 背包问题 180
9.2 旅行商问题 185
9.2.1 朴素解法 186
9.2.2 进阶 190
9.3 电话号码助记符 191
9.4 实际应用 194
9.5 习题 194
第10章 采访布赖恩·戈茨 195
附录A 术语表 206
附录B 更多资源 210

本目录推荐