数据结构之时间复杂度浅谈

算法得评价标准:
评价一个算法主要看这个算法所占用资源多少,这些资源中,时间代价与空间代价是俩个主要得方面,通常是以算法执行所需得机器时间和所占用得存储空间来判断一个算法得优劣。
(1)语句频度
某语句在算法中重复执行得次数,称为语句频度,记为T(n).
例:for(i=0;i<n;i++) 对应得语句频度 n

时间复杂度含义
在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况,并确认T(n)的数量级,用"O"表示数量级,记作:
T(n)=O( f (n) ) ------- 大“O”表示法
时间复杂度是指在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数。

时间复杂度规律
1.只保留函数中最高项 (当n值很大时,最高项后面的的式子可以忽略不计)
2.若最高项存在且不是1,则除去与这个最高项相乘的系数。

计算
1.常数阶
数据结构之时间复杂度浅谈
因为只有最后一个运行了一次,则不管n的值有多大,这个语句只执行一次。
2.线性阶
数据结构之时间复杂度浅谈
n为100,循环体执行一百次,故n的值为多少,循环就执行多少次,所以时间负责度为 O(n).
3.平方阶
数据结构之时间复杂度浅谈
数据结构之时间复杂度浅谈
当外层循环加1时,内层循环要执行全部,若外层循环执行100次,则内层循环执行100100次,故外层循环执行n次时,内层循环执行n的平方次,因此时间复杂度用O(n^2)表示。
4.平方阶(内外层循环次数不一样)
数据结构之时间复杂度浅谈
5.对数阶
数据结构之时间复杂度浅谈
这个用到了while循环,每次循环都执行i
2这个语句,由于每次i*2时,就距离n更近一步,
假设x个2相乘后大于或者等于n,则会退出循环