时空复杂度概述
一、 时间频度
时间频度,一个算法消耗的时间,记为T(n)。
二、 大O表示法
大O符号是一种算法复杂度的相对表示方式。
若存在某个函数f(n),当 n –> ∞时,T(n) / f(n) 为不等于0的常数,则称f(n)是T(n)的同数量级函数,记为T(n) = O(f(n))。
三、 时间复杂度
时间复杂度全称为渐进时间复杂度(asymptotic time complexity),表示算法的时间开销与数据规模之间的增长关系。
横坐标为数据规模,纵坐标为时间频度。
四、 空间复杂度
空间复杂度全称为渐进空间复杂度(asymptotic space complexity),表示算法的存储空间与数据规模之间的增长关系。
横坐标为数据规模,纵坐标为程序所消耗的存储空间。
五、 最好时间复杂度
最理想情况下的时间复杂度
六、 最坏时间复杂度
最糟糕情况下的时间复杂度
七、 平均时间复杂度(加权平均时间复杂度/期望时间复杂度)
将各种情况的概率作为权值计算每种情况的时间复杂度, 最后取平均数。
八、 均摊时间复杂度
一般均摊时间复杂度就等于最好时间复杂度/最坏时间复杂度,因为最坏/最好情况出现的概率小,可以均摊到其他情况。
课程学习--算法总结:时空复杂度(第1期)
最新推荐文章于 2024-06-12 10:00:23 发布