性/别、身体与故事社会学(田野中国)

性/别、身体与故事社会学(田野中国)

加载中...

微信扫码,免登录解锁高速下载

如何使用 & 隐私说明

精彩点评

  • 性/别、身体与故事社会学(田野中国)
    张童
    推荐

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

  • 性/别、身体与故事社会学(田野中国)
    Charon
    推荐

    作为算法入门挺好的,示意图生动形象,缺点就是源代码是基于python2的,不过运行的时候可以自己修改一下[OK]

  • 性/别、身体与故事社会学(田野中国)
    琦琦
    推荐

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

  • 性/别、身体与故事社会学(田野中国)
    YiyaChen卫
    推荐

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

  • 性/别、身体与故事社会学(田野中国)
    南風不競
    推荐

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

Copyright © 2020 - 2022 Mitsuha. All Rights Reserved. 用户协议 · 隐私政策 ·