单选题:空间复杂度分析(阶乘,循环,动态数组)
空间复杂度分析(阶乘,循环+动态数组版)
下面算法的空间复杂度为 ▁▁▁▁▁。
c
double Fac(int n)
{
int k;
double p, *a;
a = (double*)malloc((n + 1) * sizeof(double));
a[0] = 1.0;
for (k = 1; k <= n; ++k)
{
a[k] = a[k - 1] * k;
}
p = a[n];
free(a);
return p;
}
A.$$O(n)$$
B.$$O(2 ^ n)$$
C.$$O(n ^ 2)$$
D.$$O(1)$$
答案:A
下面算法的空间复杂度为 ▁▁▁▁▁。
c
double Fac(int n)
{
int k;
double p, *a;
a = (double*)malloc((n + 1) * sizeof(double));
a[0] = 1.0;
for (k = 1; k <= n; ++k)
{
a[k] = a[k - 1] * k;
}
p = a[n];
free(a);
return p;
}
A.$$O(n)$$
B.$$O(2 ^ n)$$
C.$$O(n ^ 2)$$
D.$$O(1)$$
答案:A