数据结构和算法 笔记

时间复杂度:

时间频度:T(n)一个算法中的语句执行次数称为语句频度或时间频度

n : 算法规模

log : 如果 a^x = N ( a>0,且a≠1) , 那么数x叫做以a为底N的对数(logarithm) , 

记作 x=log(a)N , 其中 , a叫做对数的底数 , N叫做帧数。

算法时间复杂度的定义:

在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。                         

算法的时间复杂度,也就是算法的时间量度,记作:T(n)= O(f(n))。

它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称为时间复杂度。

其中f(n)是问题规模n的某个函数。

用大写O()来体现算法时间复杂度的记法,我们称之为大O记法

 时间复杂度术语
O(1)常数阶
O(n)线性阶
O(n^2)平方阶
O(logn)对数阶
O(nlogn)nlogn阶
O(n^3)立方阶
O(2^n)指数阶

常用的时间复杂度所耗费的时间从小到大依次是:
O(1) < O(logn) < (n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)





点赞