首页 > 编程语言 > 详细

算法--入门

时间:2019-09-15 12:53:40      阅读:61      评论:0      收藏:0      [点我收藏+]

什么是算法?

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

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

一个算法应该有五个特征

有穷性:必须在执行有限的几个步骤后结束。

确切性:算法的每一个步骤必须明确的定义。

输入项:一个算法有0个或者多个输入,以刻画运算对象的初始情况,所谓的0个输入是指算法本身的初始条件;

输出项:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出 算法毫无意义。

可行性:算法的任何执行计算步骤都可以分解为可执行的操作步骤,即每一个计算都可以在有限的时间完成(也称为有效性) 

算法的评定:同一个问题可以用不同的算法解决,算法的质量优劣影响算法乃至程序的效率。算法分析的目的在于找到合适的算法。一个算法的评价主要有时间复杂度和空间复杂度来考虑。

stop!请问什么是时间复杂度什么是空间复杂度?以及算法的优略的评判标准?

时间复杂度:算法的时间复杂度是指执行算法需要的计算工作量。一般来说,计算机是问题规模n的函数发f(n),算法的时间复杂度也这样记作。

空间复杂度:算法计算所需要花费的内存空间,用复杂度的渐进性表示

正确性:算法的正确性是评判一个算法的优劣的重要标准

可读性:算法的可读性是指一个算法可供人们阅读的容易程度

健壮性:健壮性是指一些算法对输入不合理的数据的反应能力和处理能力,也称为容性。

 

算法实现的常用方法:

递推法:

递推法是计算机序列常用的一种算法,它按照一定的规律来计算序列中的每一项,通常是通过计算机前面的一些项来的出序列中指定的值。其思想是把一个庞大的负责的运算过程转化为简单的多次重复计算,该方法利用了计算机快和不知疲惫的机器特点。

举个例子:小明有5块钱,说小红比小明多2块,小李又说我比小红多2块,小王说我比小李多两块。那么其他人是多少?

这个问题就可以使用递推算法:设小明=a 小红=a1  小李=a2    小王= a3  

  a=5

  a1=5+2

  a2=(5+2)+2

  a3=((5+2)+2)+2

使用java编程 来表示:

 

算法--入门

原文:https://www.cnblogs.com/yaojun3/p/11521681.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!