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

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

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

借助Java语言,基于java 11。用经典的算法、编码技术和原理来求解计算机科学的一些经典问题。

内容简介

本书是一本面向中高级程序员的算法教程,借助Java语言,用经典的算法、编码技术和原理来求解计算机科学的一些经典问题。

全书共10章,讲述了常见的搜索算法、常见的图算法、遗传算法、k均值聚类算法、简单的神经网络、对抗搜索算法等,通过丰富的方案、示例和习题展开具体实践。

本书将计算机科学与应用程序、数据、性能等现实问题深度关联,定位独特,示例经典,可以帮助程序员提升用Java解决实际问题的技术、编程和应用能力。

作者简介

作者大卫·科帕克,香普兰学院(Champlain College)的计算机科学与创新专业助理教授。他是一位经验丰富的软件开发人员,也是Classic Computer Science Problems in Swift和Dart for Absolute Beginners的作者。他拥有达特茅斯学院(Dartmouth College)的经济学学士学位和计算机科学硕士学位。

章节目录

版权信息

前言

致谢

第1章 一些小问题

1.1 斐波那契数列

1.1.1 第一次递归尝试

1.1.2 基线条件的运用

1.1.3 使用记忆化

1.1.4 简洁的斐波那契方法

1.1.5 使用流来生成斐波那契数列

1.2 简单的压缩算法

1.3 牢不可破的加密方案

1.3.1 按顺序获取数据

1.3.2 加密和解密

1.4 计算π

1.5 汉诺塔问题

1.5.1 对塔进行建模

1.5.2 求解汉诺塔问题

1.6 实际应用

1.7 习题

第2章 搜索问题

2.1 DNA搜索

2.1.1 存储DNA

2.1.2 线性搜索

2.1.3 二分搜索

2.1.4 通用示例

2.2 迷宫求解

2.2.1 生成随机迷宫

2.2.2 迷宫的其他方法

2.2.3 深度优先搜索

2.2.4 广度优先搜索

2.2.5 A*搜索

2.3 传教士和食人族问题

2.3.1 用代码来表达问题

2.3.2 求解

2.4 实际应用

2.5 习题

第3章 约束满足问题

3.1 构建约束满足问题的解决框架

3.2 澳大利亚地图着色问题

3.3 八皇后问题

3.4 单词搜索问题

3.5 字谜问题

3.6 电路板布局问题

3.7 实际应用

3.8 习题

第4章 图问题

4.1 地图是图的一种

4.2 搭建图的框架

4.3 查找最短路径

4.4 最小化网络构建成本

4.4.1 权重处理

4.4.2 查找最小生成树

4.5 在加权图中查找最短路径

4.6 实际应用

4.7 习题

第5章 遗传算法

5.1 生物学背景

5.2 通用遗传算法

5.3 简单测试

5.4 回顾字谜问题

5.5 优化列表压缩算法

5.6 遗传算法面临的挑战

5.7 实际应用

5.8 习题

第6章 k均值聚类

6.1 预备知识

6.2 k均值聚类算法

6.3 按年龄和经度对州长进行聚类

6.4 按长度对迈克尔·杰克逊的专辑进行聚类

6.5 k均值聚类算法问题及其扩展

6.6 实际应用

6.7 习题

第7章 简单神经网络

7.1 生物学基础

7.2 人工神经网络

7.2.1 神经元

7.2.2 层

7.2.3 反向传播

7.2.4 全貌

7.3 预备知识

7.3.1 点积

7.3.2 激活函数

7.4 构建神经网络

7.4.1 神经元的实现

7.4.2 层的实现

7.4.3 神经网络的实现

7.5 分类问题

7.5.1 数据的归一化

7.5.2 经典的鸢尾花数据集

7.5.3 葡萄酒的分类

7.6 加速神经网络

7.7 神经网络存在的问题及扩展

7.8 实际应用

7.9 习题

第8章 对抗搜索

8.1 棋盘游戏的基础组件

8.2 井字棋

8.2.1 井字棋的状态管理

8.2.2 极小化极大算法

8.2.3 用井字棋测试极小化极大算法

8.2.4 开发井字棋AI

8.3 四子棋

8.3.1 四子棋游戏程序

8.3.2 四子棋AI

8.3.3 用alpha-beta剪枝算法优化极小化极大算法

8.4 超越alpha-beta剪枝效果的极小化极大算法改进方案

8.5 实际应用

8.6 习题

第9章 其他问题

9.1 背包问题

9.2 旅行商问题

9.2.1 朴素解法

9.2.2 进阶

9.3 电话号码助记符

9.4 实际应用

9.5 习题

第10章 采访布赖恩·戈茨

附录A 术语表

附录B 更多资源

算法精粹:经典计算机科学问题的Java实现是2022年由机械工业出版社出版,作者[美] 大卫·科帕克。

得书感谢您对《算法精粹:经典计算机科学问题的Java实现》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
针灸研究的科学问题 电子书
《针灸研究的科学问题》该书以针灸的临床和机制研究为主线,集中介绍近年来的针灸研究成果,围绕当前针灸学界普遍关心的学术领域进行性阐述,逻辑严密,论理清晰,对针灸科研工作者有一定能够的参考价值。本书主编为我国知名针灸专家刘存志教授,在针灸界有一定的影响。全书主要分为三部分:第一部分主要集中在目前针灸研究领域的热点,阐述目前针灸领域的研究方向;第二部分系统评价针灸临床试验,介绍临床常见病的针灸治疗,讨论
批调度与网络问题的组合算法 电子书
本书以作者在算法设计领域的研究成果为基础,给出了求解批调度问题的一系列组合算法,以及求解网络优化问题的若干组合算法。主要研究了极小化加权完工时间和、**大延迟和**大完工时间3种调度目标函数,以及网络中的呼叫接纳、利润极大化和t区间的k染色问题等。本书可作为从事调度理论、组合**优化、算法设计与应用科技人员的参考书。
深度学习时代的计算机视觉算法 电子书
本书着重阐述了深度学习时代的计算机视觉算法的工作原理,首先对深度学习与计算机视觉基础进行了介绍,之后对卷积神经网络结构的演化过程,以及基于深度学习的目标检测算法、图像分割算法、人体姿态估计算法、行人重识别与目标跟踪算法、人脸识别算法和图像超分辨率重建方法进行了介绍。
深度学习搜索引擎开发:Java实现 电子书
本书是市面上少见的将搜索与深度学习相结合的书,讨论了使用(深度)神经网络来帮助建立有效的搜索引擎的方法。阅读本书无须具备开发搜索引擎的背景,也不需要具备有关机器学习或深度学预备知识,因为本书将介绍所有相关的基础知识和实用技巧。