单选题:算法分析(应用)
算法分析(应用)
下面 SumPower 函数的时间复杂度为 ▁▁▁▁▁ 。@[D](1)
```c
double Power(double x, int n)
{
double y;
if (n > 0)
{
y = Power(x, n / 2);
y *= y;
if (n % 2)
{
y *= x;
}
}
else
{
y = 1.0;
}
return y;
}
double SumPower(double x, int n)
{
double y;
if (n > 0)
{
y = SumPower(x, n - 1) + Power(x, n);
}
else
{
y = 1.0;
}
return y;
}
```
A. $$O(n ^ 2)$$
B. $$O(2 ^ n)$$
C. $$O(\log _ 2 n)$$
D. $$O(n \log _ 2 n)$$
E. $$O(n)$$
F. $$O(1)$$
G. $$O(\sqrt n)$$
H. $$O(n \sqrt n)$$
A.$$O(n ^ 2)$$
B.$$O(2 ^ n)$$
C.$$O(\log _ 2 n)$$
D.$$O(n \log _ 2 n)$$
E.$$O(n)$$
F.$$O(1)$$
G.$$O(\sqrt n)$$
H.$$O(n \sqrt n)$$
答案:D
下面 SumPower 函数的时间复杂度为 ▁▁▁▁▁ 。@[D](1)
```c
double Power(double x, int n)
{
double y;
if (n > 0)
{
y = Power(x, n / 2);
y *= y;
if (n % 2)
{
y *= x;
}
}
else
{
y = 1.0;
}
return y;
}
double SumPower(double x, int n)
{
double y;
if (n > 0)
{
y = SumPower(x, n - 1) + Power(x, n);
}
else
{
y = 1.0;
}
return y;
}
```
A. $$O(n ^ 2)$$
B. $$O(2 ^ n)$$
C. $$O(\log _ 2 n)$$
D. $$O(n \log _ 2 n)$$
E. $$O(n)$$
F. $$O(1)$$
G. $$O(\sqrt n)$$
H. $$O(n \sqrt n)$$
A.$$O(n ^ 2)$$
B.$$O(2 ^ n)$$
C.$$O(\log _ 2 n)$$
D.$$O(n \log _ 2 n)$$
E.$$O(n)$$
F.$$O(1)$$
G.$$O(\sqrt n)$$
H.$$O(n \sqrt n)$$
答案:D