1.算法效率
1.时间复杂度:算法中基本操作的执行次数
大O符号(Big O notation):是用于描述函数渐进行为的数学符号。
推导大O阶方法:
1、用常数1取代运行时间中的所有加法常数。
2、在修改后的运行次数函数中,只保留最高阶项。
3、如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶。
冒泡排序:
时间复杂度:O(n)
二分查找:
n=2^num num=log2(n)—>logN
时间复杂度:Olog(n)—>接近常数的时间复杂度
long long Factorial(size_t N)
{
return N < 2 ? N : Factorial(N-1)*N;
}
F(n)—>F(n-1)—>…->F(1)
基本操作:递归调用 —>n----> O(n)
2.空间复杂度
临时占用存储空间的大小
算法新开的空间才算
时间不能复用
空间可以复用
求空间复杂度:最大需要消耗的空间