算法图解

巴尔加瓦
本书示例丰富,图文并茂,以简明易懂的方式阐释了算法,旨在帮助程序员在日常项目中更好地利用算法为软件开发助力。前三章介绍算法基础,包括二分查找、大O表示法、两种基本的数据结构以及递归等。余下的篇幅将主要介绍应用广泛的算法,具体内容包括:面对具体问题时的解决技巧,比如何时采用贪婪算法或动态规划;散列表的应用;图算法;K最近邻算法。本书适合所有程序员、计算机专业相关师生以及对算法感兴趣的读者。
南风

算法与数据结构是相辅相成的,不要孤立开来学习。学习的重点不在于死记硬背,因为不常用的话很快也会忘记,所以要有一个大纲性的思路。 1. 首先得会复杂度分析:特别是时间复杂度,除了平均复杂度还需要知道最坏情况下算法会退化到何种地步。 2. 算法要做到脑中要有动画、知道应用场景、对比其他算法优缺点、平均复杂度和最坏复杂度、使用需配合何种数据结构。常用基础算法都用这种方式过一遍:查找、排序、递归、搜索、聚类、哈希算法、贪心算法、分治算法、回溯算法、动态规划等 3. 数据结构要做到脑中有图、适用何种算法、对比同类数据结构。经典数据结构要掌握:数组、链表、堆、栈、队列、散列表、二叉树、跳表、图、Tire树 4. 适度刷题总结:leetcode 重点是对比性学习,给定场景要能选出合适的算法和数据结构 以本书为例说明算法和数据结构的配合:广度优先搜索要配合队列;递归、深度优先搜索要配合栈;图算法多配合散列表;NP问题多用贪心和动态规划求近似解。 以数组 vs 链表为例说明优缺点对比: 数组:随机访问O(1),插入删除O(n),利于缓存、扩容时搬运麻烦、内存利用率高 链表:插入删除O(1),随机访问O(n),不利于缓存、动态扩容、消耗额外空间、易产生内存碎片 以文中的散列表冲突说明退化问题: 采用链表结构解决冲突,当所有输入均映射至同一位置,O(1)退化至O(n)。另外散列表是一种空间换时间的方案,空间占用较大(不考虑实体内容,每条目消耗就有50字节左右),海量数据判断是否存在的场景用布隆过滤即可,缺点则是损失部分精度和时间。 最后说下本书,图灵图书榜前列,简单易懂,可快速回忆经典算法流程,就是微信读书这个电子版排版太差了。4星-1星

YiyaChen卫

本书图文并茂,用通俗易懂语言介绍什么是算法的基础知识。常言道,一图抵百字,翻过本书后,不服都不行?就像读儿童时期连环画一样,读它居然初步认识了计算机算法的一些基本知识,非常喜欢! 常言还说,不要只埋头拉车不看路,本书说白了,不仅仅是看路,而且是看你一条路走是又快又好。了解它,当然本书希望是帮助设计人员通过好的途径,可令计算机获得最佳优选择算法。 本是介绍的就是其中的一些原理。例如,“算法的速度指的并非时间,而是操作数的增速。 ❑ 谈论算法的速度时,我们说的是随着输入的增加,其运行时间将以什么样的速度增加。 ❑ 算法的运行时间用大O表示法表示。 ❑ O(log n)比O(n)快,当需要搜索的元素越多时,前者比后者快得越多”。 ............. 简言之,它虽然说看起来简单,实际上它提供给普通读者的,还真有些像“内行看门道 ,外行看热闹”高招。本书语言不多,道理深。因为它本身也是水很凉很深,在里面游不一定舒服,除非是哪些会玩的,不得不学或者强壮....呵呵! 好在作者非常厚道,他也告诉读者那些内容不必读。 本书关键字就是搜索!这本小册子中的作业居然还附有答案!

虎头虎脑的小熊猫

瑕不掩瑜 我会这样定义一本我眼中的好书:深入浅出、关联丰富以及与我当下的认知水平相当。 这本小书的最大优点就在推理过程交代清楚。一步一步、为什么这么想、这么走,都给你描画得一清二楚。换言之,它是按照事物发展的逻辑顺序进行内容构建的,看得就很过瘾,像一本推理小说。 举例而言,它会在介绍完 SHA 算法后立刻介绍局部敏感的散列算法,在我刚在前一节中提出问题,如果我不想一点变动就让哈希值完全不同,那么应如何处理?它在下一节立刻垫上了,用 Simhash。这种逻辑上的完备与层层递进,就减少了很多理解成本。有时候你觉得理解困难,就是因为中间有步骤被抽去了,例如你在数学书里经常看到的:显然可得、易证得。 所以这是一本看起来很过瘾的小书。细嚼慢咽,给你剥出来最精华的内核。 但有一个错误我觉得是不该发生也不能被容忍的。在第七章,狄克斯特拉算法中,有明显错误。作者指出,狄只适用于有向无环图。而这是不正确的,事实上,只要没有负权边就可以。我在这里思路衔接不上,因为从算法实现中推不出作者言之凿凿的结果,最后经外部确认,才发现是作者出错。 看得出,作者对这个算法本身也理解不透彻。很多地方,没有讲透。例如在顶点选取上,为什么是选取当下可选点中,值最小的那个?因为在没有负权边的图中,它是已经被固定了的,因为要走其他任何一点再回到该顶点,都会造成值更大。而更新每个顶点的最小值,就是这个算法的核心,也是最机智、最动人、最美的地方。 也就是动态规划。前序的最优子结构,后面都可以直接拿来用,而且只要没有负权边,就满足无后效性的条件。但是作者既没有讲到上面那句缺失的话,让这个问题在我脑子里多思考了大半天,直到在另一本《我的第一本算法书》中才得到启发;也没有联系动态规划或者贪婪算法。或许略难,但是可以提一提,一带而过。 对了,这本书建议结合《我的第一本算法书》一起看,微信读书里也有,另外建议下载配套 app 一起使用方便理解,app 叫做 Algorithms。 因为这本书出版好些年了,这种硬伤还没有被更正,就让我不能接受。但是整体上瑕不掩瑜,是很好的入门书。况且它也给到学有余力的同学继续探索的空间。我非常喜欢他常常在篇末写的,如果你对这个话题感兴趣,欢迎你继续沿着某某算法的脚步朝里面研究。我非常喜欢这种引导。 最后,阅读算法书请配合力扣。我之所以会盛赞这本书,认为作者很多地方讲透了,就是因为很多章节我一看完,或者看了一半,就忍不住想开力扣开始刷相关标签的题目。动规、二分尤甚。这就是他把我讲明白了的最好说明。 最后的最后提醒自己,多找这类书看就够了,不要看鸡零狗碎的算法公众号,除非你能联系上作者能进一步沟通交流,不然直接读书才是最有效率的方式。出版书通常作了更好的排序工作,而且因为编辑的存在,错误也更少。 公号的错别字就够喝一壶,作者的自身理解不够,你看文章有如猜谜,更加难懂。

清飏君

抓住世界读书日的尾巴读完,20年大二挖下的坑到现在才填。 当时学数据结构与算法还一知半解,脑袋中留下了很多直觉,但在看书的时候全回来了,后面上了一些high-level的优化课也让一切变得轻松。 不过话说回来,这位作者印度老哥写的也确实挺有意思的,例子通俗易懂生动形象,在一门讲技术的书里还时不时冒出些有哲理的话,最受用到可能是这句: “在我看来,最佳的学习方式是找到感兴趣的主题,然后一头扎进去,而本书便为你这样做打下了坚实的基础。” 那么,继续去做你感兴趣的研究。

琦琦

遇到这样一本有趣的算法书籍后,你就会意识到,学习算法也可以像看喜欢的小说一样令人沉醉。 未学习过算法的,读完本书,以后的算法学习之路将会一帆风顺。对于熟悉算法的同学,本书也可以加深你的理解,有些晦涩难懂的概念和动态规划等等,根本无需死记硬背。当你想到某个算法时,你脑海中,就会自动绘制出一幅相关景象了。 后悔这么晚遇到它。

Cr.杨

算法是真的有点复杂啊🤣,因为有很多图,大部分也蛮好理解的,不过也摆脱不了数学的知识,函数啊,各种英文代名词,还有一些编程代码,有一部分听着差点睡着了🤣,看来听完要去补一下数学知识了🤣。这本书还蛮不错的,第一次接触算法书籍,书中一些步骤作者给出来非常细致的步骤,从书友推荐的入门书籍来的,还算满意,对算法有了基础的了解,也没那么难,接触多就理解了。

吉祥如意

算法使人聪明,本书使人愚蠢! 首先,结构混乱. 讲算法,里面又插入数据结构的内容, 讲数据结构,又不讲齐全, 讲不下去了,就一句话:后面你就知道了. 其次,概念不清. 第二章讲递归,把循环和递归搅拌不清, 讲不清楚了,又加入了栈的内容. 栈讲的糊里糊涂,就结束了. 突然提出一句:为什么要学习递归? 因为有些语言没有循环. 正如书友评论: 现在还有哪个语言没有循环的? 第三,举例混乱 本书号称图解, 除了老祖母的箱子之类,和算法没多大关系, 而且增加理解难度的插图以外, 其余图解,就是手绘内存图 而且写到0,都要用φ, 特别容易和专用符号混淆, 和任何一个学校的板书有什么区别? 图解的意义何在? 本来对算法和Python有点了解 本书只用3章就让我彻底混乱. 它让我想起了开培训班圈钱的“水师” 大水漫灌,还情真意切的说: 我知道的太多了,想全都告诉你们, 只可惜长8张嘴都不够 既然,8张嘴都说不清,何不shut up !

幻♂影

很棒的一本书,作为一本入门书,书中介绍了算法的所有方面,包括衡量算法的标准,一些基础的算法,如何理解一些经典算法,算法的思想是什么。赞的是书中各种配图及示例,图文并茂,深入浅出的引导读者进入算法的大门。 让我印象深刻的是分治的土地均分问题及动态规划的背包问题。在了解了这两个典型示例之后,这两个问题也就搞明白了。 在由浅至深的引导过程中更是让读者明白了很多算法问题的本质都是数学问题,数学也是算法的支撑及基础。 书的最后一章介绍了很多不同的算法,每个算法都可解决更高级的问题,有广阔的应用场景,给读者指明探索的方向。 能如此通俗易懂的介绍高深的知识,可见作者的功力之深。相比较,国内的大部分教材实在是略逊一筹

森森森

别具一格的描述了各种算法的实质以及优缺点,还介绍了有关基础工具的区别(例如链表,数组,队列,栈),并且用具体的例子来运用算法得到问题的答案。

Neptune

入门类图书应该用10小时打开一扇窗。 《算法图解》做到了。

吭哧

很好的一本算法入门书,不过封面标榜的像小说一样有趣,应该写在《算法之美》上更适合。 算法跟哲学有点儿类似,言简意赅又包罗万象,由些许个例高度抽象出来的规律,可以无限延伸扩展,都引发深度思考。不同在于,哲学由于其天生的多面性、不确定性,容易培养成流氓性质的诡辩思维,案例古今中外比比皆是。算法虽然没有像数学一样的精确性,但大体上是向准确性靠拢的,准确或者近似准确。也正因为这一点,算法才得以在各行各业大行其道,这也是社会物质条件越来越便利,物联网必然兴起的理论基础。反向来看,透过现象看实质,从社会治理,政策调控,经济规划,工业设计等方面看,其背后都有一些若隐若现的极其相似的东西,这些相似的东西,应该也可以称之为算法吧。

Herman

本书示例丰富,图文并茂,以简明易懂的方式阐释了算法,旨在帮助程序员在日常项目中更好地利用算法为软件开发助力。前三章介绍算法基础,包括二分查找、大O表示法、两种基本的数据结构以及递归等。余下的篇幅将主要介绍应用广泛的算法,具体内容包括:面对具体问题时的解决技巧,比如何时采用贪婪算法或动态规划;散列表的应用;图算法;K最近邻算法。本书适合所有程序员、计算机专业相关师生以及对算法感兴趣的读者。

安辰

算法真的很有意思,看到停不下来。这本书文字与图片结合,讲的很通俗,很容易理解。比较感兴趣的几个算法:动态规划,广度优先,Dijkstra加权图最短路径,分治法。学习算法重在思考,对问题思考的过程比解决问题本身更重要。好的算法能够优雅地解决复杂的问题,让人叹为观止。

马纯凤

太难了

别业虎

这是我看过的最好的关于算法的抛砖引玉之作。能把算法这种连专业人员都倍感困难的内容讲得像读故事一样通俗易懂的书实属罕见。本书图文并茂,平易近人,是算法初学者的首选佳作。从未学过算法的,看过此书,今后算法的学习将一凡风顺。学过算法的,此书将让你不再惧怕算法,和算法做朋友。

暂时没有数据