C数据结构与算法-算法复杂度
算法复杂度分为时间复杂度T(n)和空间复杂度F(n)
时间复杂度:也就是执行算法程序所需的时间,与硬件的速度、编程语言的级别、编译器的优化、数据的规模、执行的频度有关,前三个有很大的不确定性,所以衡量指标只要是后两者即算法的时间复杂度是数据规模n的函数。T(n)=O(F(n)),其中O表示同阶,即当n趋近无穷大是T(n)与F(n)的比值是个不为0的常数,也就是渐进时间复杂度。按照时间复杂度量级递增顺序为:常数阶O(1)、对数阶O(log2n)、线性阶O(n)、线性对数阶O(nlog2n)、平方阶O(n^2)、立方阶O(n^3)、k次方阶O(n^k)、指数阶O(2^n)。
空间复杂度:即所占的内存,与算法程序所占空间,输入数据所占空间、运行程序所占时间有关。通常采用压缩存储技术。