pk10免费滚雪球计划 北京pk赛车人工计划 一分钟赛车是官方的吗 北京pk10数学天才揭秘 北京pk10网赌害人案例 北京pk10保罗软件计划 pk10模式长期稳赚6码 北京pk10公式大全 网络赛车赌博是骗局吗 北京pk赛车是不是真的 北京pk10八码公式教程 一无所有怎么白手起家 北京pk10正规平台平台 北京pk赛车历史开结果 pk10买8码杀2码好方法 北京pk10冠亚和值漏洞 正规北京pk赛车彩票 玩北京pk10输钱经历 北京pk10专家在线计划 北京pk赛车正规吗 北京pk10为什么不禁止 北京pk拾赛车有人赢吗 北京pk10代理违法吗 pk10挂机模式真的稳赢 pk10冠军固定公式软件 北京pk10如何看大小 北京pk哈赛车官方网站 北京pk10六码公式教程 pk10去一尾算法举例 北京pk10冠军5码方法
阅读更多

2顶
0踩

行业应用

转载新闻 趣味算法图解,文科生都看懂了

2018-04-17 11:19 by 副主编 jihong10102006 评论(4) 有24945人浏览
编者按

IDEA 是由 SándorP. Fekete、Sebastian Morr 和 Sebastian Stiller 共同推出的图解算法系列。 它们最初是为 Sándor 在德国不伦瑞克工业大学开设的算法和数据结构讲座而设计的,作者希望它们能够有更广的用途,因此在网上发布了这个项目,希望能够帮助到教师、学生和有好奇心的人们。算法将会不断更新,可以访问页面了解更多信息:https://idea-instructions.com/

这些图片使用 Inkscape 绘制,可以使用任意一款向量图编辑软件来编辑它们。每个算法下面都有相应的图片下载地址。

快速排序

快速排序是一种“分而治之”的排序算法,通过随机选择“分区点”来避免出现最坏的情况。

  • 随机选择“分区点”。
  • 按照“分区点”的高度划条线。
  • 高出“分局点”的元素需要向右移动。
  • 低于“分区点”的元素需要向左移动。
  • 移动元素。
  • 重复上述的步骤分别对位于“分区点”两边的元素进行排序
。 下载地址:https://idea-instructions.com/quick-sort/

Bogo 排序

Bogo 排序也被称为“愚蠢的排序?#20445;?#26159;一?#22336;?#24120;简单但低效的排序算法,就是不断打?#20197;?#32032;的顺序,直到达到?#34892;?#20026;止。

  • 查看元素是否?#34892;頡?
  • 元素无序,那么就打乱顺序。
  • 再次检查元素是否?#34892;頡?
  • 如果?#34892;潁?#25490;序成功,否则继续重复上述步骤。
下载地址:https://idea-instructions.com/bogo-sort/

二分查找

二分查找是一种快速从一个?#34892;?#25968;组中?#19994;?#26576;个元素位置的查找算法。这有点类似于猜数字游戏,通过不断问“目标数字是大于还是小于某个数”这样的问题,最终猜出目标数字。

  • 限定元素区间。
  • 待查?#20197;?#32032;在区间的某个位置吗?
  • 不在。
  • 那么看看待查?#20197;?#32032;是不是在当前位置的左边或者右边。
下载地址:https://idea-instructions.com/binary-search/

归并排序

归并排序也是一种“分而治之”的递归排序算法。

  • 把元素分成?#35762;?#20998;,对每一个部分采用递归的归并排序。
  • 比较已经排好序的元素。
  • 合并已经排好序的元素。
  • 排序完毕。
下载地址:https://idea-instructions.com/merge-sort/

平衡二叉树

平衡二叉树是自平衡的二叉树变种,可以保证快速的查找、插入和删除操作。


以图中的平衡二叉树为例:
  • 左子节点比父节点小,而父节点比右子节点小。如果根节点左右子树的高度差超过 1,就变得不平衡。
  • 想知道树中是否包含了元素 11?11 比 10 大,那么就查找 10 的右子节点 12。11 比 12 小,所以就查找 12 的左子节点,12 的左子节点刚好是要查?#19994;?11。同样的,树中是否包含了元素 8?8 比 10 小,那么就查找 10 的左子节点 6。8 比 6 大,那么就查找 6 的右子节点。6 的右子节点不存在,?#24471;?#26641;中不存在元素 8。
  • 如何?#19994;?#26641;中最小的元素?#30475;?#26681;节点开始,一直顺着左子节点,?#19994;?#26368;后一个叶子节点就是树中最小的元素。
  • 如何?#19994;?10 的下一个元素?如果根节点刚好是 10,那么就从 10 的右子树中?#19994;?#26368;小的那个元素。如果根节点不是 10,那么先?#19994;?10,如果 10 没有右子节点,那么就一直往父节点找,直到?#19994;?#27604; 10 大的元素为止。
  • 在树种加入 17 或删除 10,破坏了树的平衡,这个时候需要通过旋转恢复树的平衡。
下载地址:https://idea-instructions.com/avl-tree/

图遍历

图遍历算法会遍历图中所有可达的顶点,可以通过辅助数据结构来实现各种遍历,比如使用无序集合实现随机遍历,使用堆栈实现深度优先遍历,使用队列实现广度优先遍历。

  • 随机查找:选定一个顶点,把它放入一个无序集?#29616;小?#20174;集?#29616;?#21462;出一个顶点,访问该顶点,把该顶点的相邻顶点放入集?#29616;校?#24182;把该顶点移出集合。重复这一过程,直到集?#29616;?#30340;元素全部被遍历完毕。
  • 深度优先遍历:选定一个顶点压入栈中,把该顶点其中的一个相邻顶点也压入栈中。访问栈顶的顶点,如果该顶点没有其他相邻的顶点,就出栈。如果有其他相邻顶点,就把其中的一个相邻顶点压入栈中。重复这一过程,直到栈中的元素全部被遍历完毕。
  • 广度优先遍历:选定一个顶点,把该顶点的相邻顶点放进队列尾部。访问队列头部的顶点,把该顶点移出队列,如果该顶点有相邻顶点,就把相邻顶点放进队列尾部。重复这一过程,直到队列中的元素全部遍历完毕。
下载地址:https://idea-instructions.com/graph-scan/

一笔画

一笔画是一种 Fleury 算法,旨在优雅地找出图中的欧拉(Eulerian)路径。欧拉路径是图中的一条路径,刚好经过每条边,并且每条边只被访问一次。

  • 顶点度数表示该顶点有几条边。
  • 如果图中有且仅有两个顶点的度数为奇数,其他为偶数,或者不存在奇数度数的顶点,则存在欧拉路径。
  • 选定一个顶点开始画路径。
  • 如果存在两个以上的桥,那么可以走桥。如果只剩下一个桥,就不能走桥,除非只剩下桥可以走。
  • 如果还有没有走过的边,重复步骤 4。
  • 成功画出欧拉路径。
下载地址:https://idea-instructions.com/euler-path/
原文链接:https://idea-instructions.com/
  • 大小: 85 KB
  • 大小: 68.4 KB
  • 大小: 90 KB
  • 大小: 73.9 KB
  • 大小: 113.6 KB
  • 大小: 89.9 KB
  • 大小: 121.8 KB
  • 大小: 110.2 KB
来自: InfoQ
2
0
评论 共 4 条 请登录后发表评论
4 楼 mmmzzc 2018-07-02 16:51
果然文如标题啊~
文科生能看懂,我这个写了几年代码的码农,文学素养不够,真心看不懂~
3 楼 Miaonly 2018-04-20 09:50
图很形象,容易懂
2 楼 somefuture 2018-04-19 13:12
画的太有意思了
1 楼 jy03100000 2018-04-17 20:09
我个写bug的都看不懂

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 趣味算法图解,产品经理都看懂了

    点击上方“程序员小灰?#20445;?#36873;择“置顶公众号”有趣有内涵的文章第一时间送达!本文转载自公众号 InfoQ作者|Sándor P. Fekete 等编辑|薛命灯小灰也看懂了。编...

  • [收藏] 趣味算法图解文科生都看懂了

    IDEA 是由 SándorP. Fekete、Sebastian Morr 和 Sebastian Stiller 共同推出的图解算法系列。 它们最初是为 Sándor 在德国不伦瑞克工业大学开设的算法和数据结构讲座而设计的,作者希望它们能够有更广的用途,因此在网上发布了这个项目,希望能够帮助到教师、学生和有好奇心的人们。算法将会不断更新,可以访问页面了解更多信息:https://idea-in...

  • 趣味算法图解文科生都看懂了(转)

    编者按?IDEA 是由 SándorP. Fekete、Sebastian Morr 和 Sebastian Stiller 共同推出的图解算法系列。 它们最初是为 Sándor 在德国不伦瑞克工业大学开设的算法和数据结构讲座而设计的,作者希望它们能够有更广的用途,因此在网上发布了这个项目,希望能够帮助到教师、学生和有好奇心的人们。算法将会不断更新,可以访问页面了解更多信息:https://id...

  • 这可能是面向儿童的算法趣味算法图解,简单明白python各种算法的实现

    趣味算法图解,产品经理都看懂了 2...

  • 看完了《图解http》

    今天花了3个小时?#36873;?em class='related_suggestion_highlight'>图解HTTP》看完了,简单总结下?#26632;瘢?#20197;之前对HTTP的了解,这本书讲得比较详细,扩展的东西也比较多,如Web 内容与 Web 攻击技术。全书可以分为四个部分: 1. 介绍http,主要讲历史与发展史 2. 详细讲解http与状态码消息头 3. 主要讲http的完全性https 4. 未来发展与web 技术受益最多的是https,那部分,书中说得非常精?#21097;?#29983;动有趣,特别是

  • 趣味算法图解

    IDEA 是由 SándorP. Fekete、Sebastian Morr 和 Sebastian Stiller 共同推出的图解算法系列。 它们最初是为 Sándor 在德国不伦瑞克工业大学开设的算法和数据结构讲座而设计的,作者希望它们能够有更广的用途,因此在网上发布了这个项目,希望能够帮助到教师、学生和有好奇心的人们。算法将会不断更新,可以访问页面了解更多信息: https://ide

  • 一篇让文科生也能读懂机器学习的文章

  • 【图文解析 】Maven图解,竟然一秒就懂了??卧槽

  • https://blog.csdn.net/gtkknd/article/details/84525262

  • https://blog.csdn.net/weixin_43747182/article/details/84564803

  • 一个文科生的工程师之路

  • 【蓝桥杯】【趣味算式】

  • 文科生思维VS理科生思维

    是什么:文科生思维传统思维模式,进化过程?#34892;?#25104;的吗,生存思维至?#24076;?#21333;项选择一般使用是非善恶,理科生思维多项选择思维,综合性选择和比?#24076;?#36827;行大量比?#24076;?#24341;导出一个概念–》机会成本为什么:文科生思维理科生思维意义:文科生思维相信直觉判断理科生思维相信专业人员

  • https://blog.csdn.net/weixin_43747182/article/details/86149490

  • 史上最强文科生:Edward Witten

  • 趣味数学问题的算法实现

  • 算法图解--python

    最近拿算法图解重新温习了一下算法,这本书真的非常适合入门,把比较简单算法细节和思路讲的非常清楚。 果然入门计算机语言就该学python。 大学里面一上来就C++太苦逼了。 ? ? ? ? 然后是第一次强?#19994;?#24863;受到Python解题的魅力。之前学python的时候,觉得不用定义就直接使用很变扭,还有就是可以灵活的使用各种数据结构,也是有点不适应。因为一开始学的就是C++,之前算法和数据结构都是用C...

  • 《趣学算法算法 思路汇总》

    算法的好坏标准?正确性:满足问题的需求,运行正常,无语法错误,?通过软件测试。易?#21015;裕?#31616;洁易懂,注释语句恰当适量。健壮性:算法对非法数据及操作有较好的反应和处理。高效性:算法运行效率高,即算法运行所消耗的时间短。低存储性:低存储性是指算法所需要的存储空间低。六字总结:高效率 低存储第二章 贪心算法一个贪心算法总是做出当前最好的选择,也就是说,它期望通过局部最优选择?从而得到全局最优的解决方案。?—...

  • 【学习?#24418;頡?em class='related_suggestion_highlight'>文科生如何入门R语言

    【学习?#24418;頡?文科生如何入门R语言作者 钱亦欣随着大数据时代的来临,掌握R语言几乎成了各个学科和多个工作岗位的必备技能。然而,不少朋友由于之前学的是偏向人文社科的专业,之前连Excel都玩不顺手,更别提接触过编程语言了。面对市面上一堆R语言的书籍,可能?#34892;?#19981;知所措,一看一些专业性比较强的书,就直接懵逼了。因此,我以本文来记录一下我将近1年半的R语言学习历程,希望能对有相似背景的朋友提供一些帮助。个人

  • 趣学算法系列-算法之美

    趣学算法系列-算法之美声明:本系列为趣学算法一书学?#30333;?#32467;内容,在此推荐大家看这本算法书籍作为算法入门, 原作者博客链接,本书暂无免费电子版资源,请大家支?#32456;?#29256;书籍简介 本书内容按照算法策略分为7章。 - 第1章从算法之美、简单小问题、趣味?#36866;?#24341;入算法概念、时间复杂度、空间复杂度的概念?#22270;?#31639;方法,以及算法设计的爆炸性增量问题,使读者体验算法的奥妙。 - 第2~7章介绍经典算法的设计策

Global site tag (gtag.js) - Google Analytics 玩北京pk10久玩必输