[每月好书] 写给大家看的算法书(来自漫画帝国的图解算法书:轻
和老规矩一样,本月月考的奖品就是《写给大家看的算法书》两本。不知道什么是月考的同学,请补习下面文章:
另外,为了避免每次月考都是相同的同学获得最高奖,从上次月考开始,获得过最高奖(得到过书)的同学,将不能获得最高奖,也就是说一个人只能获得一次最高奖。 规则就说到这里,下面是书籍介绍。 ------------------------------------割------------------------------------------------ 【日】杉浦 贤 著?? ? 编辑推荐 本书的主旨是从基础开始详尽地讲解算法,将复杂的算法知识点与轻松有趣的漫画故事结合。对初学者来说,还有什么比生动有趣的比方,更能记住新概念的呢! 内容提要 算法这个词对于非计算机从业人士而言,似乎就是晦涩、神秘的代名词。其实,算法在日常生活中随处可见。做饭用的菜谱是一种算法、查字典的方法是一种算法、给期中考试分数排名也用到了算法。事实上,算法可以说是这个信息爆炸的时代所依存的重要基石之一。 《写给大家看的算法书》对于理解信息处理的基础——算法而言,是一本非常优秀的入门读物。作者采用大量生动的类比,配合简洁易懂的配图,深入浅出地讲解算法,极大地拉近了读者与算法的距离。通读全书,读者可以了解到计算机编程与算法的基本理念,也能对简单常用的算法有一个大概的理解。 目录 第1 章 什么是算法? 1 精彩节摘 记得有一次,朋友读书时看见了“维恩图”一词,不明白它的意思,于是跑来问我。当时,我大致是这么回答的:“假设有若干个元素,同时还有若干种性质。为了直观地表现出哪些元素具有哪些性质,我们可以在平面上画出若干个封闭曲线,每个封闭曲线内的区域代表某种性质,然后把各个元素填写在正确的区域里。如果某个元素同时具有两个或多个性质,那就必须把它填写在相应的两个或多个区域的公共部分里。所以,我们要求这些封闭区域必须恰当地相交,使得每种可能的公共部分都存在。” 看见朋友一副茫然的表情,我只好找来纸和笔,举了一个实际的例子:“如果这三个圆形区域分别代表‘奇数’、‘质数’、‘平方数’,那么1 就该填到这儿,2 就该填到这儿,3 就该填到这儿……” 朋友忽然兴奋地说:“哦,我好像懂了!维恩图的意思是不是就是,当我想知道眼前的一群人是一群什么样的人时,我就在地上画几个圈,分别表示‘已婚’、‘党员’、‘上班族’,等等,然后每个人属于哪些类就站进哪些圈子里,而且我在地上画的圈需要保证,不管来了什么样的人,他总能找到个地儿站!” “没错没错,就是这样!”我激动地说道,仿佛恍然大悟的是我一样。 类似的经历我还遇到过一次,只不过我的位置换了一下。你知道吗?在现实生活中可能出现某些商品,它的价格升高时,人们的购买量也随之增加。这样的商品叫作“吉芬商品”。很有趣吧!很想搞明白这背后的原理吧!第一次听说这样的经济学现象后,我也感到非常好奇,我也很想知道这背后的原理。我在网上查到了很多与此相关的文章,它们的标题大多类似于“吉芬商品背后的直观解释”。每篇文章里都出现了同一个生词,“无差异曲线”。不管阅读哪篇文章,我都会卡在这个生词处。什么是无差异曲线?这看起来似乎是经济学中的一个非常基本的东西,因为几乎所有作者在讲解时,都会假设读者已经知道了它的意思。 无奈,我又开始搜寻“无差异曲线”的意思,结果仍然是一头雾水。大多数地方给出的解释是这样的:“一条条从左上方延伸到右下方的曲线,说明消费者的偏好不变时,若其中一种商品的消费增加,另一种商品的消费会如何减少……同一条曲线上面的每一点对应的商品组合是不同的,但是人们从中得到的效用却是相同的。”对于从没接触过经济学的人来说,这样的句子简直如天书一般。 最后,借来一本经济学教材,研究了里面的好几个例子,才让我茅塞顿开:唉,说得这么麻烦干什么,无差异曲线其实就是购买不同数量的A 和B,给人带来的满足感的“等高线”嘛!懂得什么是无差异曲线之后,再看吉芬商品的讲解文章时,就完全没有障碍了。 学习一门新的学科,往往会遇到很多新的概念。不幸的是,专家们对这些概念太过熟悉,很难意识到这会成为初学者理解的障碍;即使意识到了这一点,恐怕一时也很难想到一种真正面向初学者的、简单直白一语中的的解释;即使想到了这样的解释,综合考虑文体、篇幅等原因,或许也不会真的写下来。种种经历让我深知,填补这个空白是很有必要的。但是,谁来填补这个空白呢? 幸运的是,现在,编程初学者有了像《写给大家看的算法书》这样的书。学习编程变得简单多了。数组,其实就是一排印有号码的储物柜;堆栈,其实就是桌面上堆积的书……书中充满了这些生动有趣的比方,它们总能让我由衷地感叹:这比方打得实在是太贴切了。 《写给大家看的算法书》里还会谈到一些更基本的问题。为什么依次执行X ← Y 和Y ← X 不能交换两个变量的值?这是因为,往变量里代入值的时候,旧的值是会被覆盖掉的。在专业的程序员看来,这几乎是废话;但谁能想到,或许恰恰就是这句“废话”,解答了某个初学者百思不得其解的困惑。你是否读过很多编程入门读物,但仍然觉得有门槛?那么,这本书值得你尝试。 在信息化和大数据的背景下,人们的思维也或多或少地受到了计算机模型的影响,讨论问题时“树”、“节点”、“字符串”等词常常是张口就来。如果由于学习或者工作的原因,你时不时地会遇到这些陌生的词汇,相信这本书也会对你有帮助。 数学科普作家 顾森 媒体评论 我阅读的第一本出自日本的计算类技术书籍是欧姆社的《漫画数据库》,这种全篇漫画风格的技术书让我很是喜欢。来自漫画大国的本书,同样以轻松有趣、通俗易懂的漫画与故事的方式将抽象复杂的算法融会其中。 前言 计算机自20 世纪发明以来得到了飞速的发展,在21 世纪的现代社会,不仅仅是个人计算机,智能手机、电视、电子照相机、游戏机等预装计算机的设备也越来越普及。甚至,地铁的自动刷卡设备、ATM 自动柜员机、自动贩卖机等现代社会生活中不可或缺的机器,如果没有了计算机,那么机器的控制、顾客的管理、财务的管理、售卖的管理等各种各样的公司业务全都开展不了。 为了编写在计算机上可以良好运行的程序,我们必须学习“算法”。本书的主旨就是从基础开始详尽地讲解算法。为了让初学者也能充分理解内容,“尽可能通俗易懂”,笔者尽量让大家在轻松学习算法的同时,也可以尝试理解计算机编程中用到的一些思维方式。 另外,为了让中学生也能轻松阅读,本书虚构了埃里根博士、小艾、小莉这三个角色,对算法相关的知识进行讲解。请把自己想象成小艾或者小莉,尝试在埃里根博士的算法讲座中学习吧。 第1 章 探讨了“什么是算法”这个话题。算法这个词汇可能大家日常生活中接触不多,所以乍听之下会有晦涩艰深的感觉。但简单来说,算法就是“为解决特定问题需要进行的处理步骤”。本章为讲解得更通俗易懂,拿日常生活中的菜谱做类比。 第2 章 主要对描述算法的重要元素“数据”进行讲解,包括数据的存、取方法等。另外,本章也对在算法表示问题解决步骤时所必需的“变量”进行讲解,本章详细讲解了它作为数据存储的“盒子”的特征。 第3 章 讲述了对各种不同形式的数据进行管理的“数据结构”这种管理方式。本章还对其中的特例,如“数组”、“链表”、“树”等数据结构各自的优缺点进行了讲解。 第4 章 介绍了算法中记述处理步骤的最重要的要素“循环”及使用“循环”进行复用处理的方法。 第5 章 介绍了最重要的算法之一“排序”。本章从低效但简单的排序处理讲起,由浅入深讲解复杂但高效的排序处理。 第6 章 介绍了另一类最重要的算法——“搜索”。本章会讲述单纯的搜索、已排序的数据的搜索,以及字符串的搜索等。 第7 章 介绍一些解决数学问题的算法。本章主要讲解了可以在科学计算领域派上用场的“求解高斯方程”、“求解方程组”及“求定积分的值”等算法。 第8 章 探讨了“算法和计算机”这个话题。主要解释了一些为实现算法需要了解的计算机相关的基础知识。 通读本书,如果读者能够稍稍消除“算法是什么呀”这种顾虑,并且产生“原来如此,探究起来,计算机程序就是由一些简单的处理组合起来的东西啊”这样的想法的话,那真是笔者的荣幸。另外,如果本书的内容能成为大家以后熟悉计算机后编写良好、高效的程序的基础的话,那我真是太开心了。 2012 年11 月 杉浦贤 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |