企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
**时间复杂度** > 执行算法所需要的计算工作量。计算机算法是问题规模`N`的函数`F(n)`,算法的时间复杂度也因此记做`T( n ) = O( f( n ) )` > 当`N`越大,算法执行的时间增长率与`F(n)`的增长率成正比,称作渐进时间复杂度 **时间复杂度计算公式** >* 得出算法的计算次数公式 > * ![](https://img.kancloud.cn/ab/6c/ab6c989db8907d1c32d9646cc11f3805_850x450.png) >* 用常数`1`来取代所有时间中的所有加法常数 > * ![](https://img.kancloud.cn/24/af/24af2d5f01b10da13d5c2acbb23e4533_849x449.png) >* 在修改后的运行次数函数中,只保留最高阶项 >* 如果最高阶存在且不是1,则去除与这个项相乘的常数 **常见时间复杂度类型** >[info]* 常数阶: O(1) >* 线性阶:O(n) >* 平(立)方阶:O(n^2) / O(n^3) >* 特殊平方阶:O( n^2 / 2 + n/2 ) -> O(n^2) > * ![](https://img.kancloud.cn/c6/13/c613ef596773a38e2eb62a4dfe55894e_850x550.png) >* 对数阶:O(log2n) > * > while($n > = 1){ > * > $n = $n/2; > * > } >* nlog2n阶:O(nlog2n) >* 指数阶 >[warning] O(1) > O(log2n) > O(n) > O(nlog2n) > O(n^2) > O(n^3) > O(2^n) > O(n!) > O(n^n) **** **空间复杂度** > 执行算法所需要消耗的内存空间,记做`S( n ) = O( f( n ) )` > 包含程序代码,输入数据和辅助变量所占用的空间 > 计算和表示方法与时间复杂度类似,一般用复杂度的渐进性来表示 **空间复杂度计算方式** >* 有时用空间换取时间 >* 冒泡排序的元素交换,空间复杂度O(1)