算法:是对特定问题求解步骤的一种描述,是对指令的有限序列。
算法与数据结构的关系紧密,在进行算法设计时首先要确定相应的数据结构。
算法的特性:
1.有穷性:算法只执行有限步,并且每步应该在有限的时间内完成。
2.确定性:算法中的每一条指令必须有确切的含义,无二义性。
3.可行性:算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。
4.输入:算法具有零个或多个输入。
5.输出:算法具有一个或多个输出。
算法的设计要求:
正确性:算法的执行结果应当满足预先规定的功能和性能的要求。
可读性:指算法的可读性程度。
健壮性:是指一个算法对不合理(又称不正确、非法、错误等)数据输入的反应和处理能力。
高效性:算法应有效使用存储空间和有较高的时间效率。
算法效率的衡量准则:主要是时间复杂度和空间复杂度
一个算法的时间复杂度T(n)是该算法的时间耗费,是该算法所求解问题规模n的函数。
当问题规模趋于无穷大时,时间复杂度T(n)的数量级(阶)成为算法的渐进时间复杂度,简称时间复杂度。
语句的频度:该语句重复执行的次数。
最坏时间复杂度:最坏情况下的时间复杂度。
空间复杂度:算法在执行时所占用的存储空间。
算法的储存量:
1)程序本身所占的存储空间
2)输入数据所占的空间
3)辅助变量所占的空间
算法与数据结构的关系紧密,在进行算法设计时首先要确定相应的数据结构。
算法的特性:
1.有穷性:算法只执行有限步,并且每步应该在有限的时间内完成。
2.确定性:算法中的每一条指令必须有确切的含义,无二义性。
3.可行性:算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。
4.输入:算法具有零个或多个输入。
5.输出:算法具有一个或多个输出。
算法的设计要求:
正确性:算法的执行结果应当满足预先规定的功能和性能的要求。
可读性:指算法的可读性程度。
健壮性:是指一个算法对不合理(又称不正确、非法、错误等)数据输入的反应和处理能力。
高效性:算法应有效使用存储空间和有较高的时间效率。
算法效率的衡量准则:主要是时间复杂度和空间复杂度
一个算法的时间复杂度T(n)是该算法的时间耗费,是该算法所求解问题规模n的函数。
当问题规模趋于无穷大时,时间复杂度T(n)的数量级(阶)成为算法的渐进时间复杂度,简称时间复杂度。
语句的频度:该语句重复执行的次数。
最坏时间复杂度:最坏情况下的时间复杂度。
空间复杂度:算法在执行时所占用的存储空间。
算法的储存量:
1)程序本身所占的存储空间
2)输入数据所占的空间
3)辅助变量所占的空间