算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
算法的特性:0个或多个输入;一个或多个输出;执行时间的又穷性;算法执行结果的确定性;算法可行性。
算法设计的要求:正确性;可读性;健壮性;时间效率高和存储量低。
算法效率的度量方法:事前分析估算,即时间复杂度(大O阶:O(f(n)))。
大O阶推导:1.用常数1取代运行时间中所有加法常数;2.在修改后的运行次数函数中,值保留最高阶项;3.如果最高阶项存在且不是1,则去除与这个项相乘的常数。
常见的大O阶时间复杂度:常数阶:O(1);线性阶:O(n);对数阶:O(logn);平方阶:O(n2);
算法空间复杂度:算法所需的存储空间。