算法时间复杂度:也就是算法的时间量度级,
记作: T(n)=O(f(n)),其中f(n)是问题规模n的某个函数 ,T(n)是关于问题规模n的函数
大O记法:用大 写O()来体现算法时间复杂度;
一般情况下:随着输入规模n的增大,T(n)的增长最慢的算法成为最优算法;
大O阶的推导:
- 用常数1取代运行时间中的所有加法常数,常数阶;
- 在修改后的运行次数函数中,只保留最高阶项;
- 如果最高阶项存在且不是1,则去除与这个项目相乘的常数。
常用的时间复杂度从小到大排序: O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn);
空间复杂度:通过计算算法所需的存储空间实现,算法的空间复杂度的计算公式记作:S(n)=O(f(n)),n为问题的规模,f(n)为语句关于n所占存储空间的函数。
注意:通常所说的求复杂度都是求时间复杂度。