算法效率.
一般分为时间效率(时间复杂度),空间效率(空间复杂度)两种。
时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间,在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。
时间复杂度
算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一般来说想要准确了解一个算法的时间复杂度都需要上机测试之后才能得出结果.但现实中这就不可能实现.
但发现一个算法的时间复杂度与它的语句执行次数有关.(成正比)因此,便可以用算法的基本语句执行次数来表示算法的时间复杂度.
那么如何计算时间复杂度呢?
一般我们采用的是大O的渐进表示法.
步骤:
1、找到执行次数最多的语句
2、语句执行语句的数量级
3、用O表示结果
然后:
1、用常数1取代运行时间中的所有加法常数
2、在修改后的运行次数函数中,只保留最高阶项
3、如果最高阶项存在且不是1,那么我们就去除于这个项相乘的常数。比如5n^2我们取n^2.
例如:
void Func1(int N)
{
int count = 0;
for (int i = 0; i < N ; ++ i)
{