算法时间复杂度

度量程序(算法)执行时间的两种方法

1、事后统计
这种方法两个问题:想要评测就需要运行程序,二是运行时间依赖于计算机硬件软件等,而且只有在同一台机器上运行比较算法速度才是有效的
2、事前估算
通过分析算法时间复杂度来判断哪个算法更优

时间频度T(n)

在这里插入图片描述
算法时间复杂度_第1张图片

忽略常数项的说明

发现随着n的变大,常数项的作用是逐渐变小,可以忽略不计的
算法时间复杂度_第2张图片
在这里插入图片描述

忽略低次项

随着n的变大,高次相同的话执行次数是趋近相同的,所以可以忽略低次项
算法时间复杂度_第3张图片
在这里插入图片描述

忽略系数

忽略系数是因为考虑高数中极限的思想,当n趋近于无穷大时,n^3 和
6n^3是同一个数量级的,所以忽略系数
算法时间复杂度_第4张图片
在这里插入图片描述

时间复杂度

算法时间复杂度_第5张图片
算法时间复杂度_第6张图片
算法时间复杂度_第7张图片
常数阶:代码的执行不会因为某个变量的变大而执行次数增加,比如i等于20000,上边代码还是执行5行

算法时间复杂度_第8张图片

算法时间复杂度_第9张图片
算法时间复杂度_第10张图片
算法时间复杂度_第11张图片

平均时间复杂度和最坏时间复杂度

算法时间复杂度_第12张图片

空间复杂度

算法时间复杂度_第13张图片

你可能感兴趣的:(java)