03.02 什么叫算法?

晴雨表3


借花献佛,把复杂的东西说的简单化,先借用一下《三傻大闹宝莱坞》电影中的一句话

教授问 兰彻(阿米尔汗)什么是机器?

任何能简化工作或节约时间的就是机械装置

那么什么是算法?

能够解决实际问题的一种方法思路就是算法

什么是解决问题的方法? 比如 我们使用淘宝购物,天猫双十一,人们上亿次的点击,服务器怎么才能响应的解决办法就是一种算法! 比如 在仓库里面有很多个机器人,机器人把物品打包好运送到指定地点,机器人和机器人之间不能打架,不能交涉在一起,路径规划就是一种算法 ; 比如 我们看到无人驾驶汽车在路上行走的解决方法也是一种算法; 再比如 今日头条,我们看文章,我们看的越多的,头条就给我们推荐类似的,这也是一种算法。。。。。还有很多很多。

有了直观的认知,那么解释下算法由什么构成的?

算法是用代码序列表达的一系列代码的有序集合,代码序列可以用任何高级语言开发,比如C、C++,c#,vb,python,delphi等各种语言。

一个算法需要前期通过数学建模哦,模型表达了解决问题的一个流程,并且这个流程是有结果的,流程是有效的,并且是有穷的,不能无限循环, 建模需要用到数学知识。

然后通过计算机语言表达出来。

什么那些数据结构都是计算机语言的知识

写算法真正到后面就是在考验一个人的数据能力,数学思维,数学功底,数学,数学,数学,我认识好多大牛都是数学专业,然后做计算法算法,到后面真的好厉害。。。。。。

欢迎大家关注我

机器视觉工程师 专业做机器视觉相关的开发, 我的头条每天都有大量机器视觉干货分享。


机器视觉工程师


广义地讲,算法就是解决问题的方法,狭义的计算机编程来说,是有具体实施步骤的可编程方法。

比如排序,是很常见的需求,我们有很多种排序的办法,如何选择,视数据具体情况而定,选择用什么方法也是算法的一环。这样说,似乎很抽象,但实践过的,其实经常会遇见,也会明白。说具体点,排序一般要赋值,用于交换,这是一种搬移的动作,但很多时候,需要排序的数据是巨型对象无法搬移的,或者赋值操作耗费资源和时间,此时无法直接教科书式的排序算法代码,程序员要另想办法,比如使用指针进行逻辑排序,把排序结果映射到实际数据上,这就是数据库里索引和视图的本质。算法还是那些算法,不过实现的具体方式有变化,学算法,要学到这层灵活性,才叫实用。

再如一种情形。有些计算,可以直接套用数学公式,就不需按部就班编写原始步骤去求,诸如1+2+3+……+n这种,就不需要写循环。但有时又不是这般,x的平方这种,不见得调用exp()函数比x*x高明。这类选择,也可以说是算法。典型的求素数算法,那个使用平方根的算法,就不是很高效,因为忽视了计算机运算浮点数的真实效率。


TonyDeng


算法,对于我的理解是算法是一组完成任务的指令。任何代码片段都可视为算法。

百科中的描述

根据《百度百科》中的描述“算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。”。丛中我们可以理解为算法是为解决问题而存在的,并且依赖于机器去自动执行的一系列指令,在形式上表现为代码。

算法的特征

  • 有穷性
有穷性表示的是一个算法的执行步骤或者过程是有限的,必须在有限的时间和步骤过程中结束。
  • 确切性
算法的每一个步骤或者每一串指令(代码)都是明确的,不可含糊的。
  • 可行性

算法中执行的任何计算步骤都可以分解为基本的可执行的操作步骤,即每个计算步骤都可以在有限时间内完成,或者都可以分解为计算机的最小分配单元去执行。

算法的评估

  • 时间复杂度

算法的时间复杂度是指算法的执行时间。一般来说是一个关于规模n的函数。
  • 空间复杂度

空间复杂度是指此算法需要消耗的存储空间,一般是指内存空间。

常用的算法

  • 排序
  • 递归
  • 迭代

综合以上的描述,算法是解决生活中碰到的问题,通过代码来描述,并借助机器来编译代码并将代码转化为机器能够识别的指令来帮助我们解决问题。


Bean蚕豆


算法是计算机和数学领域的一个术语,通俗的理解,就是做事情或者解决问题的步骤和/或每个步骤的具体操作,比如说在需要解决把大象放冰箱里,需要几个步骤这个问题时,我们可能会很快的想到: 打开冰箱门,把大象放进去,关上冰箱门,这三个步骤,这就可以说是一个算法的实例。一般来说,算法的每个步骤,应该是可被执行的,同样的条件,应得出唯一的结果(随机运算除外,咱不抬杠,好吧!),整个算法应该是可以被验证的(可被可替代的执行主体之行),比如说,路人甲可以执行把大象放进冰箱里的算法操作,那么,比路人甲体力不差或者更好的路人乙,应该也能执行这个算法,这够不够通俗呢?


拖拉机斯基


算法,是解题方案准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。计算机出现之后,对于给予计算机指令的一系列指令,特别是完成较为复杂指令的程序被统称为机器算法。


育邻人


算法的是人类的一种思维方式。



九月


解决问题的具体方法和步骤。即编制好一组让计算机执行的指令即程序,交给计算机,让计算机按人们指定的步骤有效地工作。这些具体的方法和步骤,其实就是解决一个问题的算法。


小黄100


简单的例子,上学时学过从1加到100等于多少。你要怎么去算,从1加到100嘛。

老师教过我们,(1+100 )*100/2。这就是计算机编程中的算法。


丹书


算法是一系列的计算步骤,其特征是必须要有输入、有输出、描述没有歧义、输入的符号要有限、可执行


ENED


算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入。


分享到:


相關文章: