-
算法效率。
-
时间复杂度和空间复杂度的定义。
-
如何计算时间和空间复杂度。
1. 算法效率
算法效率分为:时间效率和空间效率。时间效率被称为时间复杂度,而空间效率被称为空间复杂度。时间复杂度的主要衡量是算法的运行时间,空间复杂度的主要衡量是一个算法需要的空间。
因为早期的计算机的存储容量小,所以需要算空间复杂度,但随着时代的变迁,存储容量的增大,对于空间复杂度的要求不再高。
2. 复杂度的定义
2.1时间复杂度
在计算机中时间复杂度是一个函数,它定量描述算法的运行时间。一个算法所消耗的时间,从理论上来说无法进行计算,只有在计算机上进行运行才能知道。因此,在我们不能上机时也需要计算的时候,因为语句的执行次数与算法所花费时间成正比,就可以根据算法中的基本操作执行次数来计算算法的时间复杂度。
2.2空间复杂度
空间复杂度是对一个算法在运行时临时占用空间大小的量度。空间复杂度不是程序占用了多少bytes的空间,而是计算变量的个数
3.计算方法
3.1大o的渐进表示法
因为f(n)=n*(n-1)*(n-2)……*1,每次递归都减一最终将n变为0,所以递归了n次,O(N)则为这个程序的时间复杂度。
大o表示法:
1.用1取代运行时间中的所有加法常书
2.在修改后的运行次数函数中,只保留最高阶。
3.最后最高阶存在且不为常数时,全部省去(包括系数),如果F(N)=2N²+2N+10,则时间复杂度为
O(N²)
算法的时间复杂度存在最好,最差,平均的情况。
最差:任意输入规模运行最大次数
平均:任意输入规模期望运行次数
最好:任意输入规模运行最小次数