Day3 算法基本要素

  • 算法(Algorithm)
  • 程序(Program)
  • 总结
  • 补充

算法目录

既然我要学算法,那我就得知道,到底算法是什么?今天我们来聊一下,什么是一个算法(Algorithm)?难道程序就等于算法么?
首先我们可以看一下下面两张图对算法的定义

算法(Algorithm)


算法是解决问题的明确指令序列,满足以下要求
(1) Input: O个或多个有效的输入值(2)输出:至少产生一个值明确的:每条指令/每一步都清楚、准确、明确地规定了(4)有限性:指令有限,每条指令的执行时间有限,每条指令的运行时间有限
(1)输入: 0个或多个有效的输入值
(2)输出:至少输出一个有效值
(3)明确:每条指令/每一步都清楚、准确
(4)有穷性:指令有限,每条指令的执行时间有限,每条指令的运行时间有限

程序(Program)


程序

  • 基于该算法的问题解决方案的实现编码
  • 可以无限执行
  • 如操作系统:不是一个算法,而是一个根据具体算法无限循环运行的程序
  • 可以将每个任务视为子程序

总结

总是有很多人说要学算法,但是他们总是无法弄清楚算法到底是什么,只知道这是一个很不错的东西,但是不明白,只知道去写,认为自己能打程序就说明自己很懂算法了
这里我想借用一句话和两个公式大概可以回答什么是算法以及程序和算法的区别

Computer science should be called computing science, for the same reason why surgery is not called knife science.

我理解的算法本质是计算机模型

Algorithms + Data Structures = Programs
算法 + 数据结构 = 程序
(Algorithms + Data Structures) * Efficiency = Computation

数据结构是一种存储和组织数据的方式,旨在便于访问和修改。

我们常见会见到一个问题,如果将一个大学放进冰箱里,其实很简单,只需要三步即可
1.打开冰箱
2.把大象放进冰箱
3.关上冰箱
这也是一个简单的算法哦

补充

根据清华大学邓俊辉老师的解释,算法的特质包括但不限于这些:

每日一句
Those who turn back never reach the summit.(回头的人永远到不了最高峰!)

Day3 算法基本要素相关推荐

  1. 交叉路口定位算法/两条线要素相交获取交点

    在B/S端的矢量地图中,道路都是一条条的线要素,而线要素是由点要素连接而成.这个过程被封装在地图服务器中如arcgis server或supermap iserver,其中连接为线要素的点要素是可以通 ...

  2. 读书笔记|指数型函数对算法的影响实际应用-day3

    14天阅读挑战赛 系列文章目录 趣味算法(第二版)读书笔记: day1: 序章|学习的方法和目标. day2:算法之美|打开算法之门与算法复杂性 day3.算法之美|指数型函数对算法的影响实际应用 d ...

  3. K近邻算法(KNN)原理小结

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 目录 1. KNN算法原理 2. KNN算法三要素 3. KNN算 ...

  4. 关于机器学习算法的16个技巧

    您可能听说过瑞士军刀.如果没有,请看下面的图片.它包含许多刀片和工具.每个人都专门从事一项特定的任务.在某些情况下,不同的刀片可以完成相同的任务,但性能不同. > Image by Public ...

  5. 图解粒子群优化算法(PSO)

    PSO:particle swarm optimization 注:以下的鸟就是粒子. 总体思想 有若干只鸟xix_ixi​,位置可能各不相同,但是每只鸟需要记录下自己的个体历史最优解pbestipb ...

  6. 【转】最小编辑距离 算法原理

    问题 最小编辑距离 Minimum Edit Distance 关于两个字符串s1,s2的差别,可以通过计算他们的最小编辑距离来决定. 设A.B为两个字符串,狭义的编辑距离定义为把A转换成B需要的最少 ...

  7. 机器学习第二篇:详解KNN算法

    本篇介绍机器学习众多算法里面最基础也是最"懒惰"的算法--KNN(k-nearest neighbor).你知道为什么是最懒的吗? 01|算法简介: KNN是英文k-nearest ...

  8. 最懒惰的算法—KNN

    总第77篇 本篇介绍机器学习众多算法里面最基础也是最"懒惰"的算法--KNN(k-nearest neighbor).你知道为什么是最懒的吗? 01|算法简介: KNN是英文k-n ...

  9. 机器学习算法之 KNN

    K近邻法(k-nearst neighbors,KNN)是一种很基本的机器学习方法了,在我们平常的生活中也会不自主的应用.比如,我们判断一个人的人品,只需要观察他来往最密切的几个人的人品好坏就可以得出 ...

  10. hash算法_hash一致性算法

    一致性hash算法是,1097麻省理工提出的分布式hashDHT实现算法,极倔internet的热点问题 平衡性 hash结果尽可能的分布到所有的缓存中去,缓冲空间利用率最高 单调性 保持已有的缓存能 ...

最新文章

  1. leetcode1. 两数之和--每天刷一道leetcode系列!
  2. 查看SqlServer的内存使用情况
  3. SharePoint 出现无法识别的属性“type”
  4. TThread深入分析
  5. 有米android sdk,有米积分墙Android SDK开发者常见问题
  6. 优美的测试代码 - 行为驱动开发(BDD)
  7. processing动态代码大全_做一张动态海报需要多少步?
  8. eclipse的优化操作
  9. 企业靠一套数据平台实现“低成本运营战略”,降低成本600万
  10. Vue-cli 2在webpack内使用雪碧图(响应式)
  11. numpy 辨异(四)—— np.repeat 与 np.tile
  12. S7-200 PC ACCESS下载安装及常见问题解决思路指南
  13. 微信小程序授权登录详细解析
  14. linux shell自动登录,Shell自动登录并执行命令
  15. Mac打包dmg文件(更换背景图)
  16. 程序员不愁没练手的小项目
  17. vue引入阿里妈妈的图标
  18. 实现文件导出功能(Excel文件形式):全部导出
  19. 构件组装-总结与展望
  20. JAVA--阿尔法平台编程练习---篮球弹跳

热门文章

  1. 桌面小部件Wight父类AppWidgetProvider的三个方法
  2. nginx.conf配置外部 .conf文件
  3. (不定期更新)《虚拟现实应用技术》(Yanlz+Unity+XR+VR+AR+MR+AVE+Oculus+SteamVR+眩晕症+5G+云计算+边缘计算+人机交互+立钻哥哥+==)
  4. matlab 矩阵 对称,如何使用Matlab产生对称矩阵
  5. 傅盛:认知升级三部曲(深度好文)
  6. 已经阻止语音服务器,关闭语音服务器
  7. redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required
  8. 阿尔兹海默症AD最新研究进展(2021年7月)
  9. 天行健,君子以自强不息;地势坤,君子以厚德载物的权威解释
  10. Notion笔记软件简介