算法的乐趣

7.779 评价豆瓣读书
阅读
为自己学编程-图灵好书满200减80、满100减30、满50减10、满20减3活动详情
  • 导言
  • 目录
  • 作品信息

算法之大,大到可以囊括宇宙万物的运行规律;算法之小,小到寥寥数行代码即可展现一个神奇的功能。算法的应用和乐趣在生活中无处不在:

历法和二十四节气计算使用的是霍纳法则和求解一元高次方程的牛顿迭代法;

音频播放器跳动的实时频谱背后是离散傅立叶变换算法;

DOS时代著名的PCX图像文件格式使用的是简单有效的RLE压缩算法;

RSA加密算法的光环之下是朴实的欧几里德算法、蒙哥马利算法和米勒-拉宾算法;

井字棋、黑白棋、五子棋和俄罗斯方块游戏背后是各种有趣的AI算法;

华容道游戏求解的简单穷举算法中还蕴藏着对棋盘状态的哈希算法;

遗传算法神秘不可测,但用遗传算法求解0-1背包问题只用了60多行代码……

一本书带你走进色彩缤纷的算法世界,让你尽享算法的乐趣。

王晓华

2005年毕业于华中科技大学,目前在中兴通讯上海研发中心从事光纤接入网通讯设备开发,担任EPON(以太网无源光网络)业务软件开发经理,参与开发的PON设备在全球部署过亿线,为数亿家庭提供宽带接入服务。

业余时间喜欢研究算法和写作博客(http://blog.csdn.net/orbit),最大的乐趣就是用程序解决生活中的问题:

为了方便使用Visual Studio 6.0开发软件,曾特意编写并开源了一个tabbar插件;

为了文档安全,开发了一个基于layerFSD技术的透明文件加密系统;

使用Source Insight软件觉得不习惯,于是以外挂的形式开发了TabSiPlus插件……

算法可以做的事情还有很多,期待我们会有更多发现!

  1. 序一
  2. 序二
  3. 序三
  4. 致谢
  5. 前言
  6. 第 1 章 程序员与算法
  7. 1.1 什么是算法
  8. 1.2 程序员必须要会算法吗
  9. 1.3 算法的乐趣在哪里
  10. 1.4 算法与代码
  11. 1.5 总结
  12. 1.6 参考资料
  13. 第 2 章 算法设计的基础
  14. 2.1 程序的基本结构
  15. 2.2 算法实现与数据结构
  16. 2.3 数据结构和数学模型与算法的关系
  17. 2.4 总结
  18. 2.5 参考资料
  19. 第 3 章 算法设计的常用思想
  20. 3.1 贪婪法
  21. 3.2 分治法
  22. 3.3 动态规划
  23. 3.4 解空间的穷举搜索
  24. 3.5 总结
  25. 3.6 参考资料
  26. 第 4 章 阿拉伯数字与中文数字
  27. 4.1 中文数字的特点
  28. 4.2 阿拉伯数字转中文数字
  29. 4.3 中文数字转阿拉伯数字
  30. 4.4 数字转换的测试用例
  31. 4.5 总结
  32. 4.6 参考资料
  33. 第 5 章 三个水桶等分8升水的问题
  34. 5.1 问题与求解思路
  35. 5.2 建立数学模型
  36. 5.3 搜索算法
  37. 5.4 算法实现
  38. 5.5 总结
  39. 5.6 参考资料
  40. 第 6 章 妖怪与和尚过河问题
  41. 6.1 问题与求解思路
  42. 6.2 建立数学模型
  43. 6.3 搜索算法
  44. 6.4 算法实现
  45. 6.5 总结
  46. 6.6 参考资料
  47. 第 7 章 稳定匹配与舞伴问题
  48. 7.1 稳定匹配问题
  49. 7.2 Gale-Shapley算法的应用实例
  50. 7.3 有多少稳定匹配
  51. 7.4 二部图与二分匹配
  52. 7.5 总结
  53. 7.6 参考资料
  54. 第 8 章 爱因斯坦的思考题
  55. 8.1 问题的答案
  56. 8.2 分析问题的数学模型
  57. 8.3 算法设计
  58. 8.4 总结
  59. 8.5 参考资料
  60. 第 9 章 项目管理与图的拓扑排序
  61. 9.1 AOV网和AOE网
  62. 9.2 拓扑排序
  63. 9.3 关键路径算法
  64. 9.4 总结
  65. 9.5 参考资料
  66. 第 10 章 RLE压缩算法与PCX图像文件格式
  67. 10.1 RLE压缩算法
  68. 10.2 RLE与PCX图像文件格式
  69. 10.3 总结
  70. 10.4 参考资料
  71. 第 11 章 算法与历法
  72. 11.1 格里历(公历)生成算法
  73. 11.2 二十四节气的天文学计算
  74. 11.3 农历朔日(新月)的天文学计算
  75. 11.4 农历的生成算法
  76. 11.5 总结
  77. 11.6 参考资料
  78. 第 12 章 实验数据与曲线拟合
  79. 12.1 曲线拟合
  80. 12.2 最小二乘法曲线拟合
  81. 12.3 三次样条曲线拟合
  82. 12.4 总结
  83. 12.5 参考资料
  84. 第 13 章 非线性方程与牛顿迭代法
  85. 13.1 非线性方程求解的常用方法
  86. 13.2 牛顿迭代法的数学原理
  87. 13.3 用牛顿迭代法求解非线性方程的实例
  88. 13.4 参考资料
  89. 第 14 章 计算几何与计算机图形学
  90. 14.1 计算几何的基本算法
  91. 14.2 直线生成算法
  92. 14.3 圆生成算法
  93. 14.4 椭圆生成算法
  94. 14.5 多边形区域填充算法
  95. 14.6 总结
  96. 14.7 参考资料
  97. 第 15 章 音频频谱和均衡器与傅里叶变换算法
  98. 15.1 实时频谱显示的原理
  99. 15.2 离散傅里叶变换
  100. 15.3 傅里叶变换与音频播放的实时频谱显示
  101. 15.4 破解电话号码的小把戏
  102. 15.5 离散傅里叶逆变换
  103. 15.6 利用傅里叶变换实现频域均衡器
  104. 15.7 总结
  105. 15.8 参考资料
  106. 第 16 章 全局最优解与遗传算法
  107. 16.1 遗传算法的原理
  108. 16.2 遗传算法求解0-1背包问题
  109. 16.3 总结
  110. 16.4 参考资料
  111. 第 17 章 计算器程序与大整数计算
  112. 17.1 哦,溢出了,出洋相的计算器程序
  113. 17.2 大整数计算的原理
  114. 17.3 大整数类的使用
  115. 17.4 总结
  116. 17.5 参考资料
  117. 第 18 章 RSA算法——加密与签名
  118. 18.1 RSA算法的开胃菜
  119. 18.2 RSA算法原理
  120. 18.3 数据块分组加密
  121. 18.4 RSA签名与身份验证
  122. 18.5 总结
  123. 18.6 参考资料
  124. 第 19 章 数独游戏
  125. 19.1 数独游戏的规则与技巧
  126. 19.2 计算机求解数独问题
  127. 19.3 关于数独的趣味话题
  128. 19.4 总结
  129. 19.5 参考资料
  130. 第 20 章 华容道游戏
  131. 20.1 华容道游戏介绍
  132. 20.2 自动求解的算法原理
  133. 20.3 自动求解的算法实现
  134. 20.4 总结
  135. 20.5 参考资料
  136. 第 21 章 A*寻径算法
  137. 21.1 寻径算法演示程序
  138. 21.2 Dijkstra算法
  139. 21.3 带启发的搜索算法——A*算法
  140. 21.4 总结
  141. 21.5 参考资料
  142. 第 22 章 俄罗斯方块游戏
  143. 22.1 俄罗斯方块游戏规则
  144. 22.2 俄罗斯方块游戏人工智能的算法原理
  145. 22.3 Pierre Dellacherie算法实现
  146. 22.4 总结
  147. 22.5 参考资料
  148. 第 23 章 博弈树与棋类游戏
  149. 23.1 棋类游戏的AI
  150. 23.2 井字棋——最简单的博弈游戏
  151. 23.3 奥赛罗棋(黑白棋)
  152. 23.4 五子棋
  153. 23.5 总结
  154. 23.6 参考资料
  155. 附录A 算法设计的常用技巧
  156. A.1 数组下标处理
  157. A.2 一重循环实现两重循环的功能
  158. A.3 棋盘(迷宫)类算法方向遍历
  159. A.4 代码的一致性处理技巧
  160. A.5 链表和数组的配合使用
  161. A.6 “以空间换时间”的常用技巧
  162. A.7 利用表驱动避免长长的 switch-case
  163. 附录B 一个棋类游戏的设计框架
  164. B.1 代码框架的整体结构
  165. B.2 代码框架的使用方法
  166. 看完了

作者王晓华

类别 图书 / 非虚构

出版社人民邮电出版社

出版日期

ISBN9787115385376

提供方图灵社区

标签计算机(1655)编程(498)计算机科学(47)算法与数据结构(1)

喜欢这本书的人也喜欢

评论

载入中