文章目录
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作
1、算法的特性
-
输入输出
具有零个或多个输出,至少有一个或多个输出,算法是一定要有输出的。 -
有穷性
算法在执行了有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成。 -
确定性
算法的每一步骤都具有确定的含义,不会出现二义性。 -
可行性
算法的每一步都必须是可行的,每一步都能够通过执行有限次数完成。
2、算法的设计要求
3、算法效率的度量方法
4、函数的渐进增长
5、算法时间复杂度
5.1算法时间复杂度的定义
算法的时间复杂度,也就是算法的时间量度,记作T(n)=O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称为算法的渐进时间复杂度,简称为时间复杂度。
大O记法:
O(1)叫常数阶,O(n)叫线性阶,O(
n
2
n^2
n2)叫平方阶
5.2推导大O阶方法
5.3常数阶
时间复杂度总为O(1)
5.4线性阶
时间复杂度总为O(n)
5.5对数阶
时间复杂度为O(log n)
5.6常用的时间复杂度所耗费的时间大小排序
6、算法空间自由度
算法的空间自由度通过计算算法所需的存储空间实现,算法空间复杂度的计算公式记作:S(n)=O(f(n)),这里f(n)为关于问题规模n的所占存储空间的函数。