数据结构与算法2——时间复杂度和空间复杂度
2018-03-17 22:34
591 查看
算法效率的度量方法:事后统计的方法、事前分析估算方法。
算法的时间复杂度:在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度记作:T(n)=O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的 增长率 相同,称作算法的渐进时间复杂度,简称为时间复杂度。随着输入规模n的增大,T(n)增长最慢的算法是最优的算法。
推导大O阶的方法:1.用常数1取代运行时间中的所有加法常数;2.在修改后的运行次数函数中,只保留最高阶;3.如果最高阶项存在且不是1,则去除与这个项相乘的常数。(考虑数列)
线性阶:一般含有非嵌套循环涉及线性阶,线性阶就是随着问题规模n的扩大,对应计算次数呈直线增长。
平方阶:2个循环嵌套在一起。
对数阶:
函数调用的时间复杂度分析
算法的空间复杂度:计算算法所需要的存储空间,S(n)=O(F(n))。
算法的时间复杂度:在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度记作:T(n)=O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的 增长率 相同,称作算法的渐进时间复杂度,简称为时间复杂度。随着输入规模n的增大,T(n)增长最慢的算法是最优的算法。
推导大O阶的方法:1.用常数1取代运行时间中的所有加法常数;2.在修改后的运行次数函数中,只保留最高阶;3.如果最高阶项存在且不是1,则去除与这个项相乘的常数。(考虑数列)
线性阶:一般含有非嵌套循环涉及线性阶,线性阶就是随着问题规模n的扩大,对应计算次数呈直线增长。
平方阶:2个循环嵌套在一起。
对数阶:
函数调用的时间复杂度分析
算法的空间复杂度:计算算法所需要的存储空间,S(n)=O(F(n))。
相关文章推荐
- 数据结构-算法效率的度量-时间复杂度和空间复杂度
- 数据结构--算法(时间复杂度和空间复杂度)
- 数据结构2:算法时间复杂度和空间复杂度的计算
- 时间复杂度和空间复杂度2 - 数据结构和算法04
- 时间复杂度和空间复杂度2 - 数据结构和算法04
- 数据结构和算法学习02-时间复杂度和空间复杂度
- 数据结构和算法-时间复杂度和空间复杂度
- 数据结构 常用的算法的时间复杂度和空间复杂度
- 数据挖掘算法的空间复杂度与时间复杂度分析
- 算法的时间复杂度和空间复杂度
- 常见算法时间复杂度和空间复杂度
- 常用的算法时间复杂度和空间复杂度
- 重读数据结构之--算法的时间空间复杂度
- 数据结构_时间复杂度和空间复杂度
- 算法的复杂度包括时间复杂度和空间复杂度分别如何计算?
- 掌握算法的渐近时间复杂度和空间复杂度的意义与作用
- 有关算法时间复杂度和空间复杂度的浅析
- 算法复杂度——时间复杂度和空间复杂度
- 算法复杂度——时间复杂度和空间复杂度
- [算法] 使用“复杂”的数据结构降低时间复杂度