算法的复杂度

时间复杂度: 算法运行后对时间需求量的定性描述。 空间复杂度: 算法运行后对空间需求量的定性描述。 本章重点讨论时间复杂度 符号定性——大O表示法: ——算法效率严重依赖于操作(Operation)数量 ——操作数量的估算可以作为时间复杂度的估算 ——在判断是首先关注操作数量的最高次项 O(5) = O(1) O(2n+1) = O(2n) = O(n) O(n^2+n+1) = O(n^2) O(3n^3+1) = O(3n^3) = O(n^3) 常见的时间复杂度: 线性时间复杂度 O(n)

for(int i=0; i<n; i++)
{
			//复杂度为O(1)的语句
}    //循环次数为n

对数阶时间复杂度 O(logn)

int i=1;
while( i < n )
{
		//复杂度为O(1)的语句
		i *= 2;
}   //循环次数 log2n

平方阶时间复杂度 O(n^2)

for( int i=0; i<n; i++ )
	for( int j=0; j<n; j++ )
	{
			//复杂度为O(1)的语句
	}     //循环次数n^2

计算时间复杂度的时候只取最高次项计算即可,且大O表示法也只针对最高次项。