关于算法的时间复杂度,在大话数据结构里面有两个例子
int sum = 0, n = 100; /* 执行 1 次 */
sum = (1 + n) * n / 2; /* 执行第 1 次 */
sum = (1 + n) * n / 2; /* 执行第 2 次 */
sum = (1 + n) * n / 2; /* 执行第 3 次 */
sum = (1 + n) * n / 2; /* 执行第 4 次 */
sum = (1 + n) * n / 2; /* 执行第 5 次 */
sum = (1 + n) * n / 2; /* 执行第 6 次 */
sum = (1 + n) * n / 2; /* 执行第 7 次 */
sum = (1 + n) * n / 2; /* 执行第 8 次 */
sum = (1 + n) * n / 2; /* 执行第 9 次 */
printf("%d", sum); /* 执行 1 次 */
这段代码的时间复杂度是 O(1)
而上面的这段代码还可以这样表示
int n = 10;
for(int i=0; i<n; i++)
{
sum = (1 + 100) * 100 / 2;
}
这样修改之后代码的时间复杂度是多少? O(1)还是 O(n)?