算法的概念
算法,在数学和计算机科学之中,为任何一系列良定义的具体计算步骤,常用于计算、数据处理和自动推理。作为一个有效方法,算法被用于计算函数,它包含了一系列定义清晰的指令,并可于有限的时间及空间内清楚的表述出来(算法是由若干条指令组成的有穷序列)。
算法的五大特性
1、输入: 有零个或多个由外部提供的量作为算法的输入。
2、输出: 算法产生至少有一个量作为输出。
3、有限性: 算法中每条指令的执行次数是有限的,执行的每条指令的时间也是有限的。
4、确定性:组成算法的每条指令是清晰的、无歧义的。
5、可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完成。
算法复杂性分析
算法复杂性分析主要是针对运行该算法所需要的计算机资源的多少。当算法所需要的资源越多,该算法的复杂性越高;反之,当算法所需要的资源越少,算法的复杂性越低。
1、时间复杂度:通常,对于一个算法的复杂性分析主要是对算法效率的分析,包括衡量其运行速度的时间效率及衡量其运行时所需要占用空间大小的空间效率。算法的时间效率或算法时间复杂度是算法分析中的关键所在。
2、空间复杂度:一般情况下,一个算法所占用的存储空间包括算法自身、算法的输入、算法的输出及实现算法的程序在运行时所占用空间的总和。算法的空间复杂度的衡量主要考虑的是算法在运行过程中所需要的存储空间的大小。