算法的乐趣

算法的乐趣

作者:王晓华

出版社:人民邮电

出版年:2015年8月

ISBN:9787115385376

所属分类:网络科技

书刊介绍

《算法的乐趣》内容简介

算法之大,大到可以囊括宇宙万物的运行规律;算法之小,小到寥寥数行代码即可展现一个神奇的功能。算法的应用和乐趣在生活中无处不在: 历法和二十四节气计算使用的是霍纳法则和求解一元高次方程的牛顿迭代法; 音频播放器跳动的实时频谱背后是离散傅立叶变换算法; 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、章:三个水桶等分8升水的问题

6、章:妖怪与和尚过河问题

7、章:稳定匹配与舞伴问题

8、章:爱因斯坦的思考题

9、章:项目管理与图的拓扑排序

10、章:RLE压缩算法与PCX图像文件格式

11、章:算法与历法

12、章:实验数据与曲线拟合

13、章:非线性方程与牛顿迭代法

14、章:计算几何与计算机图形学

15、章:音频频谱和均衡器与傅里叶变换算法

16、章:全局最优解与遗传算法

17、章:计算器程序与大整数计算

18、章:RSA算法——加密与签名

19、章:数独游戏

20、章:华容道游戏

21、章:A*寻径算法

22、章:俄罗斯方块游戏

23、章:博弈树与棋类游戏
附录A
算法设计的常用技巧
附录B
一个棋类游戏的设计框架
看完了

热门书摘

就算法模式而言,处理各种求最优解问题时,人们常用贪婪法、动态规划法等算法模式;处理迷宫类问题时,穷尽式的枚举和回溯是常用的模式。就算法的实现方法而言,如果算法需要频繁地查表操作,那么数据结构的设计通常会选择有序表来实现;反过来,当设计的算法用到了树和图这样的数据结构时,含有递归结构的方法就常常伴随它们左右。

数学模型、输入输出方法和算法步骤是编写计算机算法程序的三大关键因素。

顺序执行、循环和分支跳转是程序设计的三大基本结构,算法也是程序,千姿百态的算法也是由这三大基础结构构成的。

数组、链表、栈和队列是四种最常见的线性表

说数据结构和算法没用的人是因为他们用不到,用不到的原因是他们想不到,而想不到的原因是他们不会。

递归结构使用的函数递归调用,会增加任务的栈空间使用,用递归方法解决问题的规模受系统栈空间的约束,除此之外,函数调用时的参数入栈和出栈也会降低算法的效率。

严格来说,栈不是一种数据存储方式,而是一种逻辑管理方式

贪婪法(greedy algorithm),又称贪心算法,是寻找最优解问题的常用方法。这种方法模式一般将求解过程分成若干个步骤,在每个步骤都应用贪心原则,选取当前状态下最好的或最优的选择(局部最有利的选择),并以此希望最后堆叠出的结果也是最好或最优的解。

动态规划(dynamic programming)是解决多阶段决策问题常用的最优化理论

相关推荐

微信二维码