复杂度
时间复杂度:程序时间的消耗量
空间复杂度:程序空间的消耗量
二、大O表示法
大O符号:是用于描述函数渐进行为的数学符号
1.用常数1取代运行时间中的所有加法常数
2.在修改后的运行次数函数中,只保留最高阶项
3.如果最高阶项存在且不是1,则去除与这个项自相乘的常数
---系数归一,常数归一,保留最高次项
O(1)--程序运行时间与问题规模没有关系
O(n)--程序运行时间与问题规模呈线性关系
O(n^2)--循环套循环
O(logn)--树形数据结构和二分算法中出现
O(n*m)
O(n+m)
1s ---> 计算机计算10^8次
均摊时间复杂度:
对一个数据结构进行一组连续操作中,大部分情况下时间复杂度都很低,只有个别情况下时间复杂度比较高,而且这些操作之间存在前后连贯的时序关系,这个时候,我们就可以将这一组操作放在一块儿分析,看是否能将较高时间复杂度那次操作的耗时,平摊到其他那些时间复杂度比较低的操作上。而且,在能够应用均摊时间复杂度分析的场合,一般均摊时间复杂度就等于最好情况时间复杂度。
可以认为,均摊时间复杂度就是一种特殊的平均时间复杂度。