借花献佛,把复杂的东西说的简单化,先借用一下《三傻大闹宝莱坞》电影中的一句话 教授问 兰彻(阿米尔汗)什么是机器? 任何能简化工作或节约时间的就是机械装置 那么什么是算法? 能够解决实际问题的一种方法思路就是算法 什么是解决问题的方法? 比如 我们使用淘宝购物,天猫双十一,人们上亿次的点击,服务器怎么才能响应的解决办法就是一种算法! 比如 在仓库里面有很多个机器人,机器人把物品打包好运送到指定地点,机器人和机器人之间不能打架,不能交涉在一起,路径规划就是一种算法 ; 比如 我们看到无人驾驶汽车在路上行走的解决方法也是一种算法; 再比如 今日头条,我们看文章,我们看的越多的,头条就给我们推荐类似的,这也是一种算法…还有很多很多。 有了直观的认知,那么解释下算法由什么构成的? 算法是用代码序列表达的一系列代码的有序集合,代码序列可以用任何高级语言开发,比如C、C++,c#,vb,python,delphi等各种语言。 一个算法需要前期通过数学建模哦,模型表达了解决问题的一个流程,并且这个流程是有结果的,流程是有效的,并且是有穷的,不能无限循环, 建模需要用到数学知识。 然后通过计算机语言表达出来。 什么那些数据结构都是计算机语言的知识 写算法真正到后面就是在考验一个人的数据能力,数学思维,数学功底,数学,数学,数学,我认识好多大牛都是数学专业,然后做计算法算法,到后面真的好厉害… 欢迎大家关注我 机器视觉工程师 专业做机器视觉相关的开发, 我的头条每天都有大量机器视觉干货分享。 算法的是人类的一种思维方式。 感谢邀请: 算法 ,是解题方案准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。计算机出现之后,对于给予计算机指令的一系列指令,特别是完成较为复杂指令的程序被统称为机器算法。 解决问题的具体方法和步骤。即编制好一组让计算机执行的指令即程序,交给计算机,让计算机按人们指定的步骤有效地工作。这些具体的方法和步骤,其实就是解决一个问题的算法。 广义地讲,算法就是解决问题的方法,狭义的计算机编程来说,是有具体实施步骤的可编程方法。 比如排序,是很常见的需求,我们有很多种排序的办法,如何选择,视数据具体情况而定,选择用什么方法也是算法的一环。这样说,似乎很抽象,但实践过的,其实经常会遇见,也会明白。说具体点,排序一般要赋值,用于交换,这是一种搬移的动作,但很多时候,需要排序的数据是巨型对象无法搬移的,或者赋值操作耗费资源和时间,此时无法直接教科书式的排序算法代码,程序员要另想办法,比如使用指针进行逻辑排序,把排序结果映射到实际数据上,这就是数据库里索引和视图的本质。算法还是那些算法,不过实现的具体方式有变化,学算法,要学到这层灵活性,才叫实用。 再如一种情形。有些计算,可以直接套用数学公式,就不需按部就班编写原始步骤去求,诸如1+2+3+……+n这种,就不需要写循环。但有时又不是这般,x的平方这种,不见得调用exp()函数比x*x高明。这类选择,也可以说是算法。典型的求素数算法,那个使用平方根的算法,就不是很高效,因为忽视了计算机运算浮点数的真实效率。 算法,对于我的理解是算法是一组完成任务的指令。任何代码片段都可视为算法。百科中的描述 根据《百度百科》中的描述"算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。"。丛中我们可以理解为算法是为解决问题而存在的,并且依赖于机器去自动执行的一系列指令,在形式上表现为代码。算法的特征有穷性有穷性表示的是一个算法的执行步骤或者过程是有限的,必须在有限的时间和步骤过程中结束。 确切性算法的每一个步骤或者每一串指令(代码)都是明确的,不可含糊的。 可行性 算法中执行的任何计算步骤都可以分解为基本的可执行的操作步骤,即每个计算步骤都可以在有限时间内完成,或者都可以分解为计算机的最小分配单元去执行。算法的评估 时间复杂度算法的时间复杂度是指算法的执行时间。一般来说是一个关于规模n的函数。 空间复杂度 空间复杂度是指此算法需要消耗的存储空间,一般是指内存空间。常用的算法排序递归迭代综合以上的描述,算法是解决生活中碰到的问题,通过代码来描述,并借助机器来编译代码并将代码转化为机器能够识别的指令来帮助我们解决问题。 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。 算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入。 算法是一系列的计算步骤,其特征是必须要有输入、有输出、描述没有歧义、输入的符号要有限、可执行 算法(algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤 ,用来将输入数据转化成输出结果。 mark:我们可以把所有的算法想象为一本"菜谱",特定的算法比如菜谱中的的一道"老醋花生米"的制作流程,只要按照菜谱的要求制作老醋花生米,那么谁都可以做出一道好吃的老醋花生米。so,这个做菜的步骤就可以理解为:"解决问题的步骤" 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。 形式化算法的概念部分源自尝试解决希尔伯特提出的判定问题,并在其后尝试定义有效计算性或者有效方法中成形。这些尝试包括库尔特·哥德尔、Jacques Herbrand和斯蒂芬·科尔·克莱尼分别于1930年、1934年和1935年提出的递归函数,阿隆佐·邱奇于1936年提出的λ演算,1936年Emil Leon Post的Formulation 1和艾伦·图灵1937年提出的图灵机。即使在当前,依然常有直觉想法难以定义为形式化算法的情况。