编辑推荐
入选韩国“2016年度图书”!
改变编码方式,培养算法“元能力”,延长程序员技术生命周期。
与专业编程人员进行“日常对话”,感受编程的乐趣、美好、创意。
针对程序员就业、升职、自我提高等不同阶段需求,紧跟新技术发展趋势,面向更广大人群。内容简介
《枕边算法书》d1章重点讲解各种常见算法,d2章主要介绍几种相对少见的算法,第3章和第4章探究其他程序员编写的代码,从中总结算法应具备的特点,以及程序员应当持有的态度和必须培养的能力。书中以日常对话般浅显的叙述方式,帮助专业开发人员、刚刚踏入软件开发和编程门槛的初学者体会程序设计的创造性和成就感。作者简介
先后就读于韩国首尔大学数学专业和美国印第安纳州立大学计算机科学专业。曾在三星SDS、新泽西朗讯科技公司工作,现在华尔街利用Java、C#、Scala等语言开发金融软件。与妻子和两个女儿共同住在美国新泽西州。著有《枕边谜题书》《编程就是想象》《程序员在纽约》《软件漫步》《我是程序员》《幸福编程》《程序员进阶》等,《编写可读代码的艺术》韩文版译者。目录
前言
第1章爵士乐开启晨间香气
1.1枕边的算法2
1.2用谜题解开算法世界13
1.3定义数据结构19
1.4输出P的程序P29
1.5找出隐藏的Bug33
1.6设计精妙算法42
1.7回文世界49
1.8康威的末日算法56
第2章摇滚乐伴随正午活力
2.1排序算法66
2.2搜索算法与优化问题73
2.3动态规划法84
2.4散列算法89
2.5Soundex算法93
2.6修道士梅森100
2.7程序员的“成就感”本质104
2.8文学编程108
第3章硬核朋克点燃午后激情
3.1欧几里得算法118
3.2递归的魔术124
3.3李维斯特、夏米尔、阿德曼的数学游戏131
3.4RSA算法135
3.5下午茶时间137
3.6RSA算法(续)146
3.73行Perl程序152
3.8赏析黑客们的诗163
3.92行RSA算法177
第4章古典音乐带来夜晚安逸
4.1N皇后问题180
4.2通过肉眼解答N皇后问题184
4.3藏在问题中的分立的算法191
4.4递归与栈198
4.5JeffSomers的算法207
4.6复习位运算符225
4.72的补码229
4.8分析JeffSomers的算法233
参考文献及网址244
索引245精彩书摘
《枕边算法书》:
{问题1}
有一个能够保存99个数值的数组item(0),item(1)…,item(98)。从拥确1~100元素的集合{1,2,3…,100}中,随机抽取99个元素保存到数组集合中共有100个元素,而数组只能保存99个数值,所以集合中会剩下1个元素。编写程序,找出剩余数值。
{问题2}
无论正着读还是倒着读全都相同的单词或短语称为“回文”(palindrome),比如“上海自来水来自海上”,或英文单词eye、madam等。编写函数,判断输入的字符串是否为回文。若是,则返回true,否则返回false。
{问题3}
2199年7月2日是星期几?(7月2日是我的生日,当然,这与答案毫无关联。)
我25岁才正式入门计算机编程,是大脑已开始“固化”的年龄。与现在从中学起就具备相当编程实力的人才相比,的确可以算是“大龄”程序员。因起步较晚,所以我总感觉比不上后辈们的“爆发力”。想不出适当算法而苦恼时,抬头看到那些悟性极高、能够轻松编写算法的程序员,我心里受过不少打击。
……