赠书|零压力入门算法的顶流畅销书《漫画算法》
点击上方蓝色“程序猿DD”,选择“设为星标”
回复“资源”获取独家整理的学习资料!
来,认为算法高深莫测、难以掌握的同学请起立。
好了好了,同学们冷静点,请坐请坐!
博文菌算是半个过来人,永远忘不了自己第一次翻开算法书的情形——
随便翻一页,目之所及不是大篇大篇的代码,
就是乱七八糟的符号公式,
这枯燥的大砖头,配上黑白印刷,
一阵晕眩后,气的我只想睡觉。
相信很多同学都有被一些著作的算法讲解吓到过,
很大原因可能是这些书不适合入门,
刚开局就给自己地狱难度,当然会遭受暴击!
相反,想入门算法,只要选对了书,每一天都可以是情人节! 比如,今天的主角《漫画算法:小灰的算法之旅(Python篇)》,
没有满屏的代码,没有古怪的公式符号,
只有色彩丰富的图形和萌出天际的漫画故事,
能够让你在愉快的学习氛围中,轻松领悟算法思想、理解数据结构,特别适合大家入门学习!
作为去年最畅销的IT新书《漫画算法》的Python篇,它的讲法上延续了上一版的优点,内容也做了升级,
本书重点讲解算法和数据结构的基础知识,
像是时间复杂度、二叉树、排序算法等等。
并且书中还特别介绍了面试中的算法和职场应用!
全书用极具亲和力的方式,把算法“是啥、咋来的、能干啥”讲的透透儿的。就算完全没有计算机背景的同学读起来也不觉得生硬!
比如在介绍基础的 冒泡排序 的时候,
一般书里会这样介绍:
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
然后贴上一张冒泡排序流程图:
看完这一段,各位同学,大家冒泡了吗?
反正博文菌已经开始冒烟了……
再看看《漫画算法(Python版)》中是如何讲解的!
就像汽水中小气泡们会因为轻重而向上浮动,
冒泡排序中的小元素们也会因为大小而向一侧浮动!
是不是简单、生动又清晰!
接下来,流程示例是这样的:
有8个数字组成一个无序数列{5,8,6,3,9,2,1,7},希望按照从小到大的顺序对其进行排序。
按照冒泡排序的思想,我们要把相邻的元素两两比较,当一个元素大于右侧相邻元素时,交换它们的位置;当一个元素小于或等于右侧相邻元素时,位置不变。详细过程如下:
这样一来,元素9作为数列中最大的元素,就像是汽水里的小气泡一样,“漂”到了最右侧。
超级细致,是不是一下子就懂了,甚至觉得简单极了?!
冒泡排序是基础中的基础,如果你觉得它没有什么代表性的话,那再来看看《漫画算法》介绍 动态规划 问题时都用了哪些“手段”~
书中以典型问题“挖金矿”为主线,从小灰同学一次失败的面试经验开始:
接下来的讲解中,用大量直观的图形描述来进行解释问题、引导思路:
时不时可爱的小灰和大黄会突然出现,在它们的对话中暗藏着对算法的描述:
在小灰和大黄一步步地引导下,博文菌都能够无障碍的Get到动态规划的基本思想,读完忍不住地惊叹“这还是曾经那个烧脑又可怕的动态规划问题吗?”
其实啊,算法就是这样,很多算法只是外表复杂,但只要方法得当,搞清原理,掌握起来还是很容易的!
《漫画算法:小灰的算法之旅(Python篇)》这本书就针对这些“唬人”的算法,结合漫画带来的轻松氛围,由浅入深地引导我们开动脑筋去思考问题的答案!
说它是零压力入门的算法灵药一点也都不过分,也难怪stormzhang、刘欣、梁勇 、李烨、张洪亮、崔庆才、刘志军等等圈内大佬们都在咔咔力荐!
哪个算法的学习折磨过你?
哪个神奇算法帮你轻松解决了什么问题?
你工作中最常接触的算法?用来做啥?
你认为最难的算法?如何学会的?
留言点赞数量前5位的参与者将获得本地活动奖励。
截止时间:下周一中午12点
扫一扫,关注我
一起学习,一起进步