数据结构和算法-时间复杂度和空间复杂度

算法时间复杂度的定义】算法

在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化状况并肯定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记做:T(n) = O(f(n))。它表示随问题规模n的增大,算法执行时间的增加率和f(n)的增加率相同,称做算法的渐近时间复杂度,简称为时间复杂度。其中f(n)是问题规模n的某个函数。函数

即:执行次数=时间spa

如何分析一个算法的时间复杂度?即:如何推到大O阶呢?】blog

     -用常数1取代运行时间中的全部加法常数ip

     -在修改后的运行次数函数中,只保留最高阶项get

     -若是最高阶项存在,且不是1,则去除与这个相乘的常数it

     -获得的最后的结果就是大O阶cli

【常见的时间复杂度】im

clip_image002

clip_image004

【经常使用的时间复杂度所耗费的时间从小到大依次是】d3

clip_image006

【最坏状况与平均状况】

clip_image008

【算法的空间复杂度】

clip_image010