算法的定义:算法是解决特定问题求解步骤的描述,在计算机中为指令的有限序列,并且每条指令表示一个或多个操作。
算法的特性:有穷性、确定性、可行性、输入、输出。
算法的设计要求:正确性、可读性、健壮性、高效率和低存储量需求。
算法的度量方法:事后统计方法(不科学、不准确)、事前分析估算方法。
时间复杂度的定义:
推导大O阶步骤:(3n²+2n+4)
1.用常数1取代运行时间中的所有加法常数。(3n²+2n+1)
2.在修改后的运行次数函数中,只保留最高阶项。(3n²)
3.如果最高阶项存在且不是1,则取出与这个项相乘的常数。(n²)
常见时间复杂度耗时大小排列:
O(1)<O(logn)<O(n)<O(nlogn)<O(n²)<O(n³)<O(2ⁿ)<O(n!)<O(nⁿ)。
平均时间复杂度、最坏时间复杂度