趣味算法图解,文科生都看懂了 -买球官网平台

2顶
0踩

趣味算法图解,文科生都看懂了

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

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

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

快速排序

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

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

bogo 排序

bogo 排序也被称为“愚蠢的排序”,是一种非常简单但低效的排序算法,就是不断打乱元素的顺序,直到达到有序为止。

  • 查看元素是否有序。
  • 元素无序,那么就打乱顺序。
  • 再次检查元素是否有序。
  • 如果有序,排序成功,否则继续重复上述步骤。
下载地址:

二分查找

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

  • 限定元素区间。
  • 待查找元素在区间的某个位置吗?
  • 不在。
  • 那么看看待查找元素是不是在当前位置的左边或者右边。
下载地址:

归并排序

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

  • 把元素分成两部分,对每一个部分采用递归的归并排序。
  • 比较已经排好序的元素。
  • 合并已经排好序的元素。
  • 排序完毕。
下载地址:

平衡二叉树

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


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

图遍历

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

  • 随机查找:选定一个顶点,把它放入一个无序集合中。从集合中取出一个顶点,访问该顶点,把该顶点的相邻顶点放入集合中,并把该顶点移出集合。重复这一过程,直到集合中的元素全部被遍历完毕。
  • 深度优先遍历:选定一个顶点压入栈中,把该顶点其中的一个相邻顶点也压入栈中。访问栈顶的顶点,如果该顶点没有其他相邻的顶点,就出栈。如果有其他相邻顶点,就把其中的一个相邻顶点压入栈中。重复这一过程,直到栈中的元素全部被遍历完毕。
  • 广度优先遍历:选定一个顶点,把该顶点的相邻顶点放进队列尾部。访问队列头部的顶点,把该顶点移出队列,如果该顶点有相邻顶点,就把相邻顶点放进队列尾部。重复这一过程,直到队列中的元素全部遍历完毕。
下载地址:

一笔画

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

  • 顶点度数表示该顶点有几条边。
  • 如果图中有且仅有两个顶点的度数为奇数,其他为偶数,或者不存在奇数度数的顶点,则存在欧拉路径。
  • 选定一个顶点开始画路径。
  • 如果存在两个以上的桥,那么可以走桥。如果只剩下一个桥,就不能走桥,除非只剩下桥可以走。
  • 如果还有没有走过的边,重复步骤 4。
  • 成功画出欧拉路径。
下载地址:
原文链接:
  • 大小: 85 kb
  • 大小: 68.4 kb
  • 大小: 90 kb
  • 大小: 73.9 kb
  • 大小: 113.6 kb
  • 大小: 89.9 kb
  • 大小: 121.8 kb
  • 大小: 110.2 kb
来自:
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的都看不懂

发表评论

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

相关推荐

  • fekete、sebastian morr 和 sebastian stiller 共同推出的图解算法系列。 它们最初是为 sándor 在德国不伦瑞克工业大学开设的算法和数据结构讲座而设计的,作者希望它们能够有更广的用途,因此在网上发布了这个...

  • 快速排序是一种“分而治之”的排序算法,通过随机选择“分区点”来避免出现最坏的情况。 随机选择“分区点”。 按照“分区点”的高度划条线。 高出“分局点”的元素需要向右移动。 低于“分区点”的元素...

  • fekete、sebastian morr 和 sebastian stiller 共同推出的图解算法系列。 它们最初是为 sándor 在德国不伦瑞克工业大学开设的算法和数据结构讲座而设计的,作者希望它们能够有更广的用途,因此在网上发布了这个...

  • 最受读者喜爱的算法书top10top3top1top2算法(第4版)作者:[美]塞奇威克(robert sedgewick),韦恩(kevin wayne)译者:谢路云算法经典大部头,一本让学渣看懂且学会、不打瞌睡的好书- 算法大家 sedgewick、wayne...

  • 无极就是事物的最原始状态,同时也是事物的最崇高状态:无极生太极,太极生两仪,两仪生四象,四象生八卦,八卦演万物,万物回无极。 现在的社会,对强者越来越狠,容忍度越来越低,各种道德审判让他们每天如履薄冰...

  • 5.300多幅算法手绘图解,文科生都能学的懂算法通关书。 操作系统 操作系统导论 主题突出,紧紧围绕操作系统的三大主题元素——虚拟化、并发和持久性。 以对话的方式引入背景,提出问题,进而阐释原理,启发动手实践...

  • 所以,入门的同学,我建议你找一些比较容易看的书来看,比如《大话数据结构》和《算法图解》。不要太在意书写得深浅,重要的是能不能坚持看完。 《大话数据结构》 这本书最大的特点是,它把理论讲得很有趣,不枯燥。...

  • 从零修炼成一名合格的人工智能工程师注定需要很长的路要走。而书籍正是修炼路上的武林秘籍,金庸小说中,武林人士常常会为...本文就分别介绍这四个段位中所需要的“武林秘籍”,为了方便大家,每本书后都附上了电子...

  • 《21世纪高等学校计算机基础实用规划教材·计算机程序设计基础教程:c语言》以实际问题的求解过程为向导,突出从问题到算法,再到程序的一种思维过程,强调计算机求解问题的思路引导与程序设计思维方式的训练,重点...

  • ▲点击查看苏步青教授在担任复旦大学校长时曾经说过:“如果允许复旦大学单独招生考试,我的意见是第一堂课就考语文,考后就批卷子。不合格的,以下的功课就不要考了。语文你都不行,别的是学不通的...

  • 本月 10本新书,本本都是精选。

  • 你看不懂《时间简史》?!那么就看这本书吧。如果科普都能写成这样,我根本不会读小说。我记得论坛有人做过精校文字版,推荐此版本电子书。 6 、《追寻记忆的痕迹》。 书中作者追溯了维也纳的儿时经历引起他对...

  • 快来感受阅读的魅力吧~ 是你的每一次“小步快跑”,最终影响了我们的生活哦~ 程序是怎样跑起来的 (第3版) 作者:[日]矢泽久雄 译者:周自恒 文科生也能看懂的编程基础知识 本书从计算机的内部结构开始讲起,以图...

  • 快来看看九月有哪些新书吧!

global site tag (gtag.js) - google analytics