推导大O阶方法:
1.用常数1取代运行时间中的所有加法常数
2.在修改后的运行次数函数中,只保留最高项阶
3.如果最高阶项存在且不是1,则去除与这个项相乘的常数,得到的结果就是大O阶
O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) <O(n3) < O(2^n) < O(n!) < O(n^n)
算法1:
#include <stdio.h>
void main()
{
int i, sum = 0, n = 100;
for(i = 1; i <= n; i++)
{
sum += i;
}
printf("%d\n", sum);
}
天才高斯的算法2:
#include <stdio.h>
void main()
{
int sum = 0, n = 100;
sum = (1 + n) * n / 2;
printf("%d\n", sum);
}