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

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

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”微信公众号
相关文章
|
机器学习/深度学习 存储 数据可视化
Langchain的一些问题和替代选择
Langchain因其简化大型语言模型(llm)的交互方面的到关注。凭借其高级的API可以简化将llm集成到各种应用程序中的过程。
1231 1
|
存储 算法 数据处理
数据的表现形式及其运算
在数据科学和信息技术的世界里,数据的表现形式及其运算占据了至关重要的地位。数据的表现形式决定了我们如何存储、访问和处理数据,而数据的运算则决定了我们如何从这些数据中提取有价值的信息。本文将深入探讨数据的几种常见表现形式以及它们的基本运算,并通过代码示例进行说明。
620 0
|
安全 C++
【C++11保姆级教程】移动构造函数(move constructor)和移动赋值操作符(move assignment operator)
【C++11保姆级教程】移动构造函数(move constructor)和移动赋值操作符(move assignment operator)
1722 0
|
存储 Go 容器
【golang】对键值有顺序要求时,不要使用 map
【golang】对键值有顺序要求时,不要使用 map
357 0
|
4月前
|
人工智能 监控 安全
《当普通人也能当侦探:一个AI小工具的诞生》
我计划参加魔搭(ModelScope)平台上的Qwen-Coder比赛,通过制作一段视频,分享我开发人脸识别工具的过程。这段视频将以轻松幽默的方式,结合生活中的真实案例,展现如何利用AI技术解决普通人面临的隐私与安全问题。
|
人工智能 编解码 文字识别
通义千问720亿参数模型开源,适配企业级、科研级高性能应用
通义千问720亿参数模型开源,适配企业级、科研级高性能应用
2240 0
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
749 3
|
人工智能 弹性计算 自动驾驶
2023 AI开发者生态报告:技术生态、开发范式与应用案例全景
随着人工智能技术的飞速发展,全球IT市场对AI的投入持续增长,预计到2027年将达到4236亿美元。
|
人工智能 安全 搜索推荐
|
Java Spring
JWT token验证后,通过 ThreadLocal 进行传值
JWT token验证后,通过 ThreadLocal 进行传值
211 0