【看图识算法】这是你见过最简单的 “算法说明书”

简介: 像阅读宜家的安装说明书一样学习算法,是怎样的体验?不伦瑞克工业大学的三名研究者制作了这份“算法说明书”,简明传神地解释了一些基本算法,一起来看图说话。

Quicksort算法

d9f55e505330a4ed0d847bf08b35ae63f7cec9f2

快速排序(Quicksort)是基于“分治法”的高效排序算法。随机选择划分元素是避免最坏情况runtime好策略。

Bogo排序

2c7f29a64031c469f17996156e886cea8a24c513

Bogo排序(Bogo sort)也称为愚蠢排序,是一种简单但效率非常低的排序算法。这个排序算法基于可能性,其原理等同将一堆卡片抛起,落在桌上后检查卡片是否已整齐排列好,若非就再抛一次,直到正确排好序的序列出现为止。

公开密匙加密

a2726c2742360264d825b0563aaccf562a02582f

公开密匙加密(Public-key cryptography)可以用于(至少)两个目的:一个人的公开密匙可以用来发送加密的消息给密钥的所有者。这个人可以使用他的私有密匙来创建数字签名,从而显示消息的真实性。

二分搜素算法

f85257bf61d039d3d46fa3f4c7f4c70c04997eab

二分搜素算法(Binary search)是一种用于在有序数组中查找某个值的位置的快速搜索算法。例如人们在“猜数字”时,可以通过反复询问“大于或小于x?”来找到。这种搜索算法每一次比较都使搜索范围缩小一半。

归并排序

a47e6bebfc3c7686979763d1f655cfd3b0cc605f

归并排序(Merge sort)是基于“分治法”的递归排序算法。

AVL tree

060f131a61fec09d9791b40fd40c17f8571ce8a6

118988d54a0a046b7e4a378a94ccbc06f4191ed0

AVL树(AVL tree)是一种保证项目快速查找,插入和删除的数据结构。它是二叉搜索树(Binary Search Tree)的一种自平衡变体。

graph scan算法

e286083fcef816f67572dacd1ab606201e9b918e

graph scan算法遍历图中所有可到达的节点。它的行为可以通过插入不同的数据结构来改变:使用无序集合导致随机搜索,使用堆栈产生深度优先搜索,使用队列产生广度优先搜索。

Fleury算法

501d5d6e000d8aaf4461cf9e1879b4d8e73af6a0

Fleury算法,这是一种在图中求解欧拉路径的优雅方法——一次只通过每条边一次的路径。

注:IDEA是SándorP. Fekete,Sebastian Morr和Sebastian Stiller汇编的一些算法说明。它们最初是为不伦瑞克工业大学Sándor算法和数据结构讲座而创建,作者发布它们,希望它们能够用于各种背景的教学和学习。



原文发布时间为:2018-03-18
本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号
相关文章
|
7月前
|
监控 算法
公司文档管理软件中的必备工具:迪杰斯特拉算法的作用
迪杰斯特拉算法是一种解决加权有向图中单源最短路径问题的算法。该算法适用于从一个节点到其他所有节点的距离计算,并可以使用堆优化来提高时间效率。
202 0
|
23天前
|
搜索推荐 测试技术 C语言
设计求解AOE网关键路径程序(详细设计,附完整实现代码)
设计求解AOE网关键路径程序(详细设计,附完整实现代码)
|
1月前
|
安全 测试技术
【软件设计师备考 专题 】软件测试的原则与方法:确保软件质量的关键步骤
【软件设计师备考 专题 】软件测试的原则与方法:确保软件质量的关键步骤
41 0
|
7月前
|
测试技术
软件测试高频面试题“黑盒测试之正交试验法”案例剖析与实践应用
软件测试高频面试题“黑盒测试之正交试验法”案例剖析与实践应用
344 0
|
9月前
|
算法
需求分析引起的算法
需求分析引起的算法
470 0
|
8月前
|
监控 负载均衡 算法
转:在文档管理软件中匈牙利算法应该如何应用
匈牙利算法在文档管理软件中的应用非常广泛。匈牙利算法可以用来解决二分图最大匹配问题,而在文档管理软件中,可以将计算机和网络设备之间的连接关系视为一个二分图,计算机和网络设备分别作为二分图的两个部分。
39 1
|
8月前
|
算法 索引
转:探索二叉树的遍历算法在文档管理软件中的原理与行为分析
在文档管理软件里,二叉树的遍历算法如同在细心编排舞台,将文档数据有序地呈现。又像是潺潺流水,将一个个节点串联而成,每个节点犹如明珠,蕴含着左右两个子节点的可能。文档管理软件借助二叉树,将文档索引、文件夹构造等事宜娴熟布局,让用户宛如游览花园,轻松快捷地翻阅、寻觅和获取各类文档。
45 0
|
机器学习/深度学习 算法
数据结构与算法关系(中):如何评判一个算法的好坏
大家好,我是MicroStone,一个曾在三家世界500强企业担任要职的一线互联网工程师。上一节,我们了解到算法的一些特征,想必大家都掌握了算法设计要求,在学习或工作中根据业务需求设计要设计一个算法,我们要如何评估一个算法的好坏呐?下面我们来看看算法的度量方式。
128 0
|
测试技术
测试思想-测试设计 测试用例设计之因果图方法
测试思想-测试设计 测试用例设计之因果图方法
122 0
|
测试技术
正交试验测试用例设计及工具推荐
在科研和生产实践中,人们往往要做许多次实验来进行某项研究。实验条件一般包括很多因素,当因素的值不同时,实验的结果也不一样。如果想把每个因素的每个值都要实验一遍,总实验数就等于各因素的值的个数的乘积,而这个数往往很大,超过了可接受的成本。 例如,假设某个实验由A,B,C,D四个因素,每个因素都有10个不同的取值,那么如果想把每个因素都考虑到,我们需要做 10*10*10*10=10000次实验。 为了减少实验数目,我们必须选出那些最有代表性的例子。于是,就要用到了正交表法(Orthogonal Array Testing Strategy)。
243 0
正交试验测试用例设计及工具推荐