数据结构复习1算法的复杂度
算法的复杂度
一、算法时间复杂度:
1.算法的时间复杂度就是算法的时间量度。
2.语句总的执行次数T(n).
T(n)=O(f(n)),表示随着n增大,算法执行时间的增长率和f(n)的增长率相同。
3.执行次数=时间,把CPU执行一次指令的时间称为单位时间。
4.用O()来计量算法时间复杂度的记法称为大O记法。
5.随着输入规模n的增大,T(n)增长最慢的算法是最优算法。
6.推导大O阶:
(1)常数1取代运算时间中的所有加法常数
(2)在修改后的执行次数函数中,只保留最高阶项
(3)如果最高阶项存在且不为1,则去除与这个项相乘的常数
(4)结果就是大O阶
7.常数阶O(1),线性阶O(n),平方阶O(n^2),对数阶O(logn),nlogn阶,立方阶,指数阶
8.常用时间复杂度耗费时间的排序
9.最坏情况与平均情况
10.常见时间复杂度的情形
二、算法的空间复杂度
1.算法的空间复杂度通过计算算法所需的存储空间实现
2.S(n)=O(f(n)),n为问题的规模,f(n)为语句关于n所占存储空间的函数
3.用空间消耗换取时间消耗
三、算法的时间复杂度:运行时间的需求
四、算法的空间复杂度:空间需求
要求我们求复杂度时,这个复杂度通常指的是时间复杂度。